【发布时间】:2011-08-17 22:39:02
【问题描述】:
jQuery:
$("[type=text]").autocomplete({
source: "json.php",
minLength: 0
}).addClass("ui-widget ui-widget-content ui-corner-left");
如果我将源代码更改为 JS 数组,则效果很好。我知道 php 正在工作,因为我可以在控制台中看到它,但无论如何这里是示例 php:
$arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5);
echo json_encode($arr);
所以下拉菜单没有显示。现在感觉自己很傻。
【问题讨论】:
-
PHP 中的 JSON 被编码为一个对象,而不是一个数组。我对 jQuery.autocomplete 并不十分熟悉,但它是否需要一个数组? {'a': 1, 'b': 2, 'c': 3} vs ['a', 'b', 'c']
-
即使我尝试从 php 页面返回:
echo "['opt1','opt2','opt3','opt4']";,它也没有做任何事情。我还尝试将 dataType: "json", 添加到选项中,但什么也没有。 -
问题是你的json对象需要'label'或'value'属性来自动渲染,否则你需要一个自定义的选择函数
标签: php jquery json user-interface autocomplete