无法在代码点火器中选择 2 个 jquery ajax 中加载数据



我想使用 ajax 在搜索中的文本更改时在 select2 中加载数据,我正在使用以下代码,但它不起作用。控制台中没有错误,并且未调用jquery函数。

jQuery('#t_name').select2({
ajax: {
url: 'get-all_data',
processResults: function (data) {
return {
text: item.text,
id: item.id
};
}
}
});
public function getAllData()
{
$json = [];
$results=$this->db->select('*')->from($this->user)->get()->result_array();
foreach($results as $row)
{
$json[] = ['id'=>$row['id'], 'text'=>$row['name']];
}
return $json;  
}

你应该尝试如下:

processResults: function (data) {
return {
results: $.map(data, function (item) {
return {
text: item.NAME,
id: item.ID
}
})
};
}

试试这个

在控制器中

public function getAllData()
{
//if( $this->input->get('q') != '' ){do something}
$json = [];
$results=$this->db->select('*')->from($this->user)->get()->result_array();
foreach($results as $row)
{
$json[] = ['id'=>$row['id'], 'text'=>$row['name']];
}
header('Content-Type: application/json');
header('Pragma: no-cache');
header('Cache-Control: no-store, no-cache');
echo json_encode( $json );
}

在你的JavaScript中

$(document).ready(function(){
$(".select2").select2({
minimumInputLength: 2,
ajax: {
url: '<?=base_url()?>/get-all_data',
dataType: 'json',
delay: 250,
processResults: function (data) {
return {
results: data
};
},
cache: false
}
});

}(;

对于使用 ajax 的 select2 需要、JSON 格式的数据以及您在processResults中犯了一个拼写错误。

请检查下面的代码。

$('.js-data-example-ajax').select2({
ajax: {
url: 'get-all_data',
dataType: 'json',
processResults: function (data) {
return {
results: data
}
}
}
});

PHP代码

public function getAllData()
{
$json = [];
$results=$this->db->select('*')->from($this->user)->get()->result_array();
foreach($results as $row)
{
$json[] = ['id'=>$row['id'], 'text'=>$row['name']];
}
echo json_encode($json);
}

更新

建议:另外,您可以在PHP函数中使用此代码,而无需对日期设置使用for循环。

public function getAllData() {
$results = $this->db->select('id, name as text')->from($this->user)->get()->result_array();
echo json_encode($results);
}

请尝试在您的 ajax url 中添加项目的base_url:

jQuery('#t_name').select2({
ajax: {
url: base_url + 'get-all_data',
processResults: function (data) {
return {
text: item.text,
id: item.id
};
}
}
});

相关内容

  • 没有找到相关文章

最新更新