2014-01-09 2 views
0

Я передаю массив через JQuery как этотКак отправить значение JQuery массива на контроллер CodeIgniter

$.ajax({ 
    url: "<?php echo base_url();?>index.php/autocomplete/test_search?added_ids[]="+ids, 

..... 

Вот это сеть текст из хрома

..../автозаполнение/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); 

Но для первой записи в массиве она работает. Следующий элемент не исключается в разделе где_not_in. Не могли бы вы помочь мне, где я делаю это неправильно?

+0

Pass его в виде строки и чем преобразовать значения в массив, используя лопаются или функцию соединения. – Rikesh

+0

отправить как 'added_ids =" + ids' –

ответ

1

использование -

ids.join(", "); 

и передавать их в виде строки

+0

@ Nouphal.M Спасибо, это сработало. – user3177114

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() объединить обр ay. В вашем контроллере вы можете получить элемент с помощью explode()

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

Смежные вопросы