Select2从数据库加载数据 - CodeIgniter

时间:2015-04-16 12:29:03

标签: php json codeigniter

我尝试在Select2输入中加载数据库数据。 (我正在研究CI)

这是来自控制器的代码:在echo 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

1 个答案:

答案 0 :(得分:0)

我认为您的数据结果方法缺少某些内容。这是我使用ajax select2组件的代码:

            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,
    };
},

我在向服务器发送或返回q之前有一些操作,但我希望这可以帮助您提供服务:)

hth,k