Php 在Codeigniter中正确返回jquery自动完成的响应
我是jquery新手,在自动完成功能方面遇到了问题。编辑:我应该提到我正在使用带有Codeigniter的MVC。我的AJAX响应返回如下Php 在Codeigniter中正确返回jquery自动完成的响应,php,jquery,codeigniter,autocomplete,Php,Jquery,Codeigniter,Autocomplete,我是jquery新手,在自动完成功能方面遇到了问题。编辑:我应该提到我正在使用带有Codeigniter的MVC。我的AJAX响应返回如下[{“客户名称”:“Adecco管理与咨询公司”}]。它也不是一行,而是下拉列表中的每个字符,如下所示 [ { " c u s t 等等。这是我的自动完成脚本 $('#cust_name').autocomplete({ source: function(request,response){ var request = {
[{“客户名称”:“Adecco管理与咨询公司”}]
。它也不是一行,而是下拉列表中的每个字符,如下所示
[
{
"
c
u
s
t
等等。这是我的自动完成脚本
$('#cust_name').autocomplete({
source: function(request,response){
var request = {
toSearch: $('#cust_name').val()
};
$.ajax({
url: '/researchDB/index.php/rdb_con/autoComplete',
data: request,
datatype:"json",
type: 'POST',
success: function(data){
response(data);
}
});
}
});
和我的控制器:
function autoComplete(){
$data['id'] = $this->rdb_mod->autoComplete();
echo json_encode($data['id']);
}
型号:
public function autoComplete(){
$toSearch = $_POST['toSearch'];
$this->db->select('customer_name');
$this->db->like('customer_name', $toSearch, 'after');
$query = $this->db->get('research');
return $query->result();
}
视图中的输入:
<input data-input-type="cust_name" id="cust_name" class="ids form-control search-query " type="text" name="customer_name">
我不确定是否正确设置了jquery函数,但当我键入输入时,响应以错误的格式包含了所需的结果。谢谢你能给我的帮助 我收到了SO之外的答案,想在这里为其他人发布解决方案 控制器:我需要将结果放入一个数组中,并将其作为一个对象传递给ajax响应
function autoComplete(){
$data['id'] = $this->rdb_mod->autoComplete();
$results = array();
foreach($data['id'] as $row){
$results[]=$row->customer_name;
}
echo json_encode($results);
}
jquery:就我对本节的理解而言,我没有使用内置函数,因此覆盖了autocomplete设置的请求变量
$('#cust_name').autocomplete({
source: function(request,response){
$.ajax({
url: '/researchDB/index.php/rdb_con/autoComplete',
data: request,
datatype:"json",
type: 'POST',
success: function(data){
var items = JSON.parse(data);
response(items);
}
});
}
});
型号:变化不大。我添加了distinct以限制dup值
public function autoComplete(){
$toSearch = $_POST['term'];
$this->db->distinct();
$this->db->select('customer_name');
$this->db->like('customer_name', $toSearch, 'after');
$query = $this->db->get('research');
return $query->result();
}
感谢所有帮助过我的人 你的问题不完整还是我的问题?我从第二行代码中看不到任何东西。是的。我按了一下tab enter键,它就提前发布了。@AgashThamo。一定是你。我个人认为这是非常清楚的,我更喜欢更新之前的问题…好吧。感谢您的回复。我不明白请求的返回“/researchDB/index.php/rdb_con/autoComplete”是否为“每行1个字符”。如果是这种情况,我想我们还需要
$this->rdb_mod->autoComplete()
中方法的代码。