jQuery自动完成不显示我的编码值

时间:2011-10-27 23:06:52

标签: jquery-ui jquery

我正在使用此示例: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个结果,但由于某种原因它们不会显示。知道为什么吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

属性应命名为labelvalue。来自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);