jQuery UI 自动完成不会显示返回的 json (PHP)
jQuery:
$("[type=text]").autocomplete({
source: "json.php",
minLength: 0
}).addClass("ui-widget ui-widget-content ui-corner-left");
如果我将 source: 更改为 JS 数组,则 工作正常。我知道 php 正在工作,因为我可以在控制台中看到它,但无论如何,这里是示例 php:
$arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5);
echo json_encode($arr);
所以下拉列表没有显示。现在想想都觉得自己好傻。
The jQuery:
$("[type=text]").autocomplete({
source: "json.php",
minLength: 0
}).addClass("ui-widget ui-widget-content ui-corner-left");
Works fine if I change the source: to a JS array. I know that the php is working because I can see it in the console, but here is the sample php anyways:
$arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5);
echo json_encode($arr);
So the dropdown just isn't displaying. Feeling pretty stupid right about now.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
在 json.php 文件中,请务必在 echo 之前通过 header() 函数将内容编码设置为 json。这样 jQuery 应该将数组视为正确的 json。
In your json.php file, be sure to set the content encoding to be json via the header() function before your echo. This way jQuery should see the array as proper json.
几天前,我也遇到了 JSON 填充自动完成的问题。
我的问题是我没有设置内容类型,正如 Wally 上面所说:
我还将 jQuery 自动完成调用包装在 getJSON 中,然后使用该函数中的数据填充自动完成字段。我的直觉告诉我,额外的 getJSON 应该是不必要的,但像你一样,我在引用我的 PHP 文件作为源时遇到了问题。
由于我使用的是旧的 PHP 版本,因此我手工制作了 JSON。我包含“标签”和“值”字段,因为我相当确定它们对于自动完成工作是必需的。
A few days ago I was also having problems with a JSON-populated Autocomplete.
My problem was that I wasn't setting the content-type, as Wally said above:
I also wrapped my jQuery autocomplete call inside a getJSON, then used the data from that function to populate the autocomplete field. My gut tells me that the extra getJSON shouldn't be necessary, but like you, I was having problems referencing my PHP file as the source.
Since I'm using an old PHP version, I hand-made my JSON. I included "label" and "value" fields because I'm fairly certain they're necessary for the autocomplete to work.
http://jqueryui.com/demos/autocomplete/remote-jsonp.html
检查这个从演示站点获取的内容。
http://jqueryui.com/demos/autocomplete/remote-jsonp.html
Check this get from demos site.