我正在使用此示例:http://jqueryui.com/demos/autocomplete/#remote我正在编码输出:
$rows = array();
while($r = mysql_fetch_assoc($category_result))
{
$rows[] = $r;
error_log ("rows: ".$rows[0]);
}
echo json_encode($rows);
但另一方面的下拉没有显示出来。这是我的测试页面:http://problemio.com/test.php - 如果输入“ho”,它会匹配数据库中的2个结果,但由于某种原因它们不会显示。知道为什么吗?
谢谢!
答案 0 :(得分:1)
属性应命名为label
和value
。来自JQuery UI demo page you linked to:
本地数据可以是一个简单的字符串数组,也可以包含 数组中每个项目的对象,带有标签或值 财产或两者兼备。 label属性显示在建议中 菜单。
因此,您需要在PHP或稍后的JavaScript category_name
处理函数中将label
重命名为source
。后者需要您使用remote example中的回调函数替换PHP URL。这样你就可以以任何你想要的方式获取数据(例如通过jQuery.getJSON())并在它被移交给建议框之前使用它。
希望这有帮助。
关于你的评论,这应该这样做:
$rows = array();
while ($r = mysql_fetch_array($category_result)) {
$rows[] = array("label" => $r["category_name"]);
}
echo json_encode($rows);