2015-04-16 4 views
1

Я пытаюсь загрузить данные базы данных в свой вход Select2. (Im работая на CI)Select2 загрузить данные из базы данных - CodeIgniter

Вот мой код из контроллера: преобразует массив в эхо JSON

class Ajax extends CI_Controller { 

public function __construct(){ 
    parent::__construct(); 
    $this->load->model('client'); 
} 

public function returnClientsAjax(){ 
    echo json_encode($this->client->getClients()); 
} 

}

Модель: возвращая массив результатов

function getClients(){ 
    return $this->db->query("SELECT idclient AS id, CONCAT(societe,' [', nom,']') as text FROM du_client WHERE (societe != '' AND nom != '') AND evo2012 >=2 AND type_client != 'Particulier' AND statut_client = 'Demandeur' AND idclient = 6141;")->result_array(); 
} 

My Select2:

$("#sel_clients").select2({ 
    placeholder: "Search for an Item", 
    ajax: { 
     dataType: "json", 
     url: "http://commexpert.dev.local/ajax/returnclientsajax", 
     results: function (data) { 
      return {results: data}; 
     } 
    } 
}); 

Вход все еще пуст, поэтому не знаю, что делать.

Thnaks: D

+0

Проверьте добавленное ли вы select2.min.js или нет. –

+0

Да, я связал select2 js там. И путь хорош –

+0

'return {results: data};' here' data' - это полный объект, поэтому попробуйте сделать что-то вроде 'return {results: data.id};' –

ответ

0

Я думаю, что что-то отсутствует в вашем методе результаты данных. Вот мой код из рабочего компонента Аякса ВЫБ.2:

  results: function (data) { 
       var results = []; 
       var id1 = data.id; 
       var name = data.text; 
       $.each(data.data, function(index, item){ 
        results.push({ 
         id: item[id1], 
         text: item[name].trim()+' : '+ item[id1] 
        }); 
       }); 
       return {results: results}; 
      } 

также, у меня несколько различий вызова данных также:

data: function (term) { 
    try { 
     mirko = $(this).closest('[rendered]').find("input[fparamname$=" + $(this).attr('flookupfiltref') + "]").val(); 
     if (mirko.indexOf(' : ') >=0) { // pocetna vrijednost 
      mirko = mirko.split(' : ')[1].trim(); 
     } 
    } catch(e){ 
     mirko = ''; 
    } 
    return { 
     sp_name: $(this).attr('objectname'), 
     fl_name: $(this).attr('fparamname'), 
     node_id: $(this).attr('node_id'), 
     bound: mirko, 
     q: term, 
    }; 
}, 

Я имеющий somekind манипуляции перед отправкой или возврата д к серверу ,, но я надеюсь, что может помочь вам для вашей службы :)

HTH, к

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