【问题标题】:jquery autocomplete not working with JSON datajquery自动完成不适用于JSON数据
【发布时间】: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"}]跨度>

标签: php jquery json jquery-autocomplete


【解决方案1】:

发件人:

您的 JSON 需要包含 labelvalue(或两者)。将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"}]
    

    【讨论】:

      猜你喜欢
      • 2020-05-05
      • 2018-01-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-19
      • 2016-03-21
      • 2015-08-05
      相关资源
      最近更新 更多