【问题标题】:JQuery UI Autocomplete not getting data from generated JSONJQuery UI自动完成没有从生成的JSON中获取数据
【发布时间】:2016-06-09 21:35:11
【问题描述】:

您好,我知道这里有很多关于 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查询db。我什至没有传递任何参数,只是一直执行相同的查询以获得相同的结果。

我错过了什么?

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

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

提前谢谢你。

【问题讨论】:

  • 你有什么问题?您是否检查过控制台是否有任何错误?
  • @RoryMcCrossan 问题是,我没有得到任何反馈,这就是我迷路的原因
  • 好的,但是发生了什么/没有发生什么?
  • @RoryMcCrossan 我只是得到我想象的默认库消息,上面写着没有搜索结果和白色浏览器控制台

标签: php jquery json jquery-ui autocomplete


【解决方案1】:

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

appendTo

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

【讨论】:

  • 是的,对不起,你是对的,但这不是问题,我还没有得到数据:/
  • @Asur 你能描述一下“我还没有得到数据”吗?
  • 是的,对不起,这不是一个正确的答案,但我正在尝试你的解决方案,基本上我和你在那个小提琴中所做的一样,但我仍然没有得到自动完成字段,所以我猜问题出在我的 php 上吗?问题是示例 JSON 是在脚本对数组进行编码并打印它之前获得的,所以我不明白为什么它没有正确返回 JSON。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-04-17
  • 2012-05-27
  • 2013-10-10
  • 1970-01-01
  • 1970-01-01
  • 2018-05-04
  • 1970-01-01
相关资源
最近更新 更多