JQuery UI Autocomplete无法从生成的JSON获取数据

时间:2016-02-26 15:29:11

标签: php jquery json jquery-ui autocomplete

您好我知道这里有很多关于JQuery UI Autocomplete的问题,但据我所知,它们都不符合我的需求。
我是从一个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查询db。我甚至没有传递任何参数,只是一直进行相同的查询以获得相同的结果。

我错过了什么?

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

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

提前谢谢。

1 个答案:

答案 0 :(得分:2)

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

请参阅appendTo

  

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