Codeigniter:为什么在控制器和不同模型中解析数据的结果

时间:2017-08-23 14:59:23

标签: javascript php codeigniter

我尝试使用带有JavaScript的复选框发送ID。这是JavaScript代码:

function searchFilter() {
var colours = document.getElementsByName('colour[]');
var colour = "";
for (var i=0, n=colours.length;i<n; i++) 
    {
        if (colours[i].checked) 
    {
        colour += ","+colours[i].value;
    }
}
$.ajax({
    type: 'POST',
    url: '<?php echo base_url(); ?>Cataloguegaes/ajaxData/',
    data:'colour='+colour,
    beforeSend: function () {
    },
    success: function (html) {
        $('#postList').html(html);
    }
});
}

我的HTML:

<label><b>colour :</b></label>
<ul class="list-unstyled rat">
    <li><label><input type="checkbox" id="colour" name="colour[]" onclick="searchFilter();" value="1"><span>black</span></label></li>
    <li><label><input type="checkbox" id="colour" name="colour[]" onclick="searchFilter();" value="2"><span>white</span></label></li>
    <li><label><input type="checkbox" id="colour" name="colour[]" onclick="searchFilter();" value="3"><span>blue</span></label></li>
</ul>

当我发送给控制器时,黑色值为1黑色。 ID的结果是正确的print_r ($id) // **,1* *

这是我的控制器Cataloguegaes:

function ajaxData(){
    $conditions = array();
    $colour     = $this->input->post('colour');

    print_r($colour); // result is 1 eg black

    if(!empty($colour)){
        $conditions['search']['colour'] = $colour;
    }

    //total rows count
    $totalRec = count($this->catalok->get_all_product($conditions));

     //get posts data
    $data['posts'] = $this->catalok->get_all_produk($conditions);

    //load the view
    $this->load->view('view_filtering',$data);
}

但是当我进入模型时,结果变为// ,1,1,1

我的模特Catalok:

function get_all_product($params = array()){
    $this->db->select('a.*, b.*');
    $this->db->from('product a');
    $this->db->join('product_get_color b','b.id_product =a.id_product','left');
    $this->db->where('a.status','on');
    $this->db->group_by('a.id_product');

    // sort data by colour
    print_r($params['search']['colour']); // this result **,1,1 IN HERE MY PROBLEM, Should be, 1**
    if(!empty($params['search']['colour'])){
    $this->db->where_in('c.id_opsi_get_colour',$params['search']['colour']);
    }elseif($params['search']['colour'] = 0){

    }
    //get records
    $query = $this->db->get();
    //return fetched data
    return ($query->num_rows() > 0)?$query->result_array():FALSE;
}

行。我简化了我的代码。而且我已经编写了成为我问题的代码行。

我的目标是通过复选框选择产品颜色。 请告诉我如何处理我的问题。谢谢印尼人民!

1 个答案:

答案 0 :(得分:0)

只是添加爆炸。和合

$this->db->where_in('c.id_opsi_get_color',explode(',', $params['search']['colour']));