我正在通过jQuery传递数组
$.ajax({
url: "<?php echo base_url();?>index.php/autocomplete/test_search?added_ids[]="+ids,
.....
以下是chrome
的网络文字... /自动填充/ test_search added_ids [] = 5190,3574,5369&安培;术语= S
我必须在我的控制器中捕获此数组以运行类似
的查询$selected = $this->input->get('added_ids');
$this->db->select('first_nm, last_nm , title');
$this->db->where_not_in('my_id', $selected);
但是对于数组中的第一个条目,它正在工作。 where_not_in 部分中未排除下一个元素。你能帮助我,我做错了吗?
答案 0 :(得分:1)
使用 -
ids.join(", ");
并将它们作为字符串传递
答案 1 :(得分:1)
在Ajax调用中
$.ajax({
url: "<?php echo base_url();?>index.php/autocomplete/test_search?added_ids="+ids.join("_"),
在控制器中
$selected = $this->input->get('added_ids');
$selected=explode('_',$selected);
$this->db->select('first_nm, last_nm , title');
$this->db->where_not_in('my_id', $selected);
您可以使用.join()
来组合数组元素。在您的控制器中,您可以使用explode()
答案 2 :(得分:0)
尝试
where_not_in()
函数需要数组不是字符串。
$selected = $this->input->get('added_ids');
$ids = explode(',',$selected[0]);
$this->db->select('first_nm, last_nm , title');
$this->db->where_not_in('my_id', $ids);
更多信息here