2015-04-16 175 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(); 
} 

我的选择2:

$("#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的操纵,,但我希望能帮助您为您服务:)

心连心,K