您好,我知道这里有许多关于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
类的元素,则菜单 将附加到该元素。无论值如何,如果没有 元素,菜单将被附加到正文中。