【问题标题】:Jquery UI Autocomplete not workingJquery UI自动完成不起作用
【发布时间】:2012-09-13 09:33:41
【问题描述】:

我正在使用 Jquery 小部件 Autocomplete。我的数据源是一个返回 JSON 数据的服务器端脚本。

$(function() {      
    $( "#supcode" ).autocomplete({
        source:"index.php/inventory/supcode",
        minLength: 1                    
    });
});

我使用 MVC 架构(Codeigniter)并在控制器中使用以下方法返回 JSON 数据,

function supcode()
{     
    $dataarray="";
    $data=$this->Inventorymodel->supcode();
    echo json_encode($data);
}

我正在使用以下函数获取模型中的数据,

function supcode(){
$finresult="";
$this->db->select('name');
$query = $this->db->get('supplier');
$result=$query->result_array();

foreach($result as $row){
    $finresult[]=array(
        'name' => $row['name']
    );
}
return $finresult;
}

当我在文本框中输入一个字母时,过滤不起作用并且所有项目都列出了。我在这里做错了什么?谁能帮我?提前谢谢....

【问题讨论】:

  • 我发现print_r() 在查看 JSON 代码时很有帮助,像这样打印它并确保你的变量都在那里并且正确。
  • 不,它不起作用...我尝试了 print_r(json_encode($data)) 而不是 echo json_encode($data) ..同样的问题。过滤不起作用..
  • 你在firefox json请求响应中测试过吗?
  • 您确定请求是向服务器发出的吗?
  • 是的..它已经完成了..我在萤火虫中得到了响应 ["abcd","efgh","klmn"] ......所有这三个项目都列在自动完成列表中。 .问题是过滤不起作用

标签: php javascript jquery jquery-ui codeigniter


【解决方案1】:

您需要在服务器端完成过滤(如 @Henrik 对问题的 cmets 中所述),预期数据格式需要是带有 label 的对象数组和value 作为字段。

[ { label: "Choice1", value: "value1" }, ... ]

查看此链接jQuery Autocomplete

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-01
    • 1970-01-01
    • 2011-06-11
    相关资源
    最近更新 更多