我正在努力与select2。
我有一个ajax调用,它返回一个json。 json就是这样形成的(来自服务器):
public function get_groups()
{
$result = array();
$sql = "SELECT * FROM auth_groups ";
foreach ($this->db->query($sql)->result() as $row){
$tmp = array("id" => $row->id ,"label" => $row->name );
array_push($result, $tmp);
}
header('Content-type: application/json');
echo json_encode($result);
}
然后从我的javascript我有:
$('#group_choice').select2({
minimumInputLength: 2,
ajax: {
url: "/bonsejour/extranet/ajax/resources/get_groups",
dataType: 'json',
data: function (term, page) {
return {
term:term
};
},
results: function (data, page) {
var results = [];
$.each(data, function(index, item)
{
results.push({id:item.ID, text:item.label});
});
return {
results: results
};
}
}
});
其中#group_choice是输入文本。
当我在输入框中输入一些文本时,它会显示来自json的所有元素。但是,当我尝试选择一个元素时,没有任何反应。如何选择输入中的元素?
由于
答案 0 :(得分:0)
参考http://ivaynberg.github.io/select2/#documentation
formatSelection:formatSelectionMethod,
function formatSelectionMethod(row){return row.text;}
我希望你会发现它有用。
答案 1 :(得分:0)
请参阅Select2 Ajax Method Not Selecting,
并采取正确的值:
id: function(data){return {id: data.id};},
或
id: function(data){return data.id}