JQuery UI 自动完成功能无法从生成的 JSON 中获取数据


JQuery UI Autocomplete not getting data from generated JSON

您好,我知道这里有许多关于JQuery UI自动完成的问题,但据我所知,没有一个真正符合我的需求。
我正在从一个 json 文件执行此操作,该文件是对该数组进行编码的构造的:

Array
(
    [0] => Array
        (
            [label] => 76
            [value] => Museo de la Iglesia
        )
    [1] => Array
        (
            [label] => 86
            [value] => Iglesia de los Padres
        )  
...  

在 php 文件的末尾像这样打印它:

echo json_encode($rows); 

我的脚本也非常简单,几乎是从官方页面复制的:

<script type="text/javascript">
   $(function() {
     $( "#field" ).autocomplete({
       minLength: 1,
       appendTo: "#result",
       source: "search.php"
    });
  });
</script>  

和我的表格

<div class="container col-md-6 col-md-offset-3">
  <h1> Test de autocompletado</h1>
  <form>
    <div class="form-group ui-widget">
      <label for="autocomplete">Campo de autocompletado</label>
      <input type="text" class="form-control" placeholder="Introduce texto" id="field">
    </div>
  </form>
  <div id="result"></div>
</div>

我不明白,我认为 JSON 还可以,表单触发脚本,php 查询数据库。我什至没有传递任何参数,只是一直执行相同的查询以获得相同的结果。

我错过了什么?

编辑:经过一些研究,我发现在@guest271314的帮助下,错误在JSON中,这就是我到目前为止所做的:

var_dump(json_encode($rows)); //bool(false)
echo json_last_error(); // 5 = JSON_ERROR_UTF8

提前谢谢你。

不能将菜单附加到元素#field input 。将appendTo更改为应显示结果的元素

请参阅appendTo

应将菜单附加到哪个元素。当值为 null 时, 将检查输入字段的父级是否为 ui-front .如果找到具有 ui-front 类的元素,则菜单 将附加到该元素。无论值如何,如果没有 元素,菜单将被附加到正文中。