jquery自动完成不适用于JSON数据
Posted
技术标签:
【中文标题】jquery自动完成不适用于JSON数据【英文标题】:jquery autocomplete not working with JSON data 【发布时间】:2011-05-13 04:15:28 【问题描述】:我的 php 代码将 JSON 数据返回到 jquery 自动完成但自动完成不起作用
jQuery 自动完成
$("input#txtaddkey").autocomplete(
source: "keyword.php",
minLength: 2
);
PHP 代码
$fetch = mysql_query("SELECT * FROM o_keyword where keyword like '%" . $query . "%'");
while ($row = mysql_fetch_array($fetch, MYSQL_ASSOC))
$row_array['id'] = $row['id'];
$row_array['keyword'] = $row['keyword'];
array_push($return_arr,$row_array);
echo json_encode($return_arr);
JSON 数据输出
["id":"2","keyword":"Games","id":"3","keyword":"Goa"]
在输入“Ga”时,我在前端得到了空的 li 标签。
【问题讨论】:
你的“keyword.php”真的返回了什么吗?请与 firegug ... 是的,它返回 ["id":"2","keyword":"Games","id":"3","keyword":"Goa"]跨度> 【参考方案1】:发件人:
http://jqueryui.com/demos/autocomplete/您的 JSON 需要包含 label
或 value
(或两者)。将keyword
更改为value
,它应该可以正常工作。
【讨论】:
【参考方案2】:您的代码需要稍作修改。
while ($row = mysql_fetch_array($fetch, MYSQL_ASSOC))
$row_array['value'] = $row['id'];
$row_array['label'] = $row['keyword'];
array_push($return_arr,$row_array);
回显 json_encode($return_arr);
现在你的 json 格式将是
["value":"2","label":"Games","value":"3","label":"Goa"]
【讨论】:
以上是关于jquery自动完成不适用于JSON数据的主要内容,如果未能解决你的问题,请参考以下文章
jQuery .val() 不适用于 jQueryUI 自动完成功能
ASP.NET List<> 用于 JQuery 的 AJAX 自动完成。 ?转换为 JS JSON 或 ajax 调用