Php jQuery UI自动完成无法处理源中的外部文件
就这样。。。我的jQuery代码如下: jQuery:Php jQuery UI自动完成无法处理源中的外部文件,php,jquery,autocomplete,Php,Jquery,Autocomplete,就这样。。。我的jQuery代码如下: jQuery: <script type="text/javascript"> $(document).ready(function() { $('#val').autocomplete({ source: "search.php", }); }); </script> 但事情是这样的。。。当我打开我的search.php时,我想到了json中的所有结果。。。然后,如果我尝试自动完成,他会加载所有结
<script type="text/javascript">
$(document).ready(function() {
$('#val').autocomplete({
source: "search.php",
});
});
</script>
但事情是这样的。。。当我打开我的search.php时,我想到了json中的所有结果。。。然后,如果我尝试自动完成,他会加载所有结果。。。。。。。例如
在search.php中,我收到:
[诺基亚,诺基亚Lumia]
好的。。。在autocomplete中,当我键入LUMIA时,小部件也会加载Nokia。
布乌特。。。。。如果我复制search.php中得到的结果,并在jquery脚本中粘贴一个变量,那么自动完成就可以了
有人知道为什么我的外部结果源不能像我将结果与jQuery代码一起直接放在一个变量上那样工作吗
提前感谢,并为我糟糕的英语感到抱歉:-
编辑:
所以我放了更多的图片来展示发生了什么。。。这样它就不起作用了,就像源代码不能接受$'val'。val
解决
我自己解决了这个问题
<script type="text/javascript">
$(document).ready(function(){
$('#val').keyup(function(){
var x = "search.php?ac=" + $('#val').val();
$('#val').autocomplete({
source: x,
minLenght:5,
});
});
});
</script>
感谢所有回复:-返回的格式应如下所示:
[
{
"label": "Nokia",
"value": "1"
},
{
"label": "Lumia",
"value": "2"
}
]
当然,也有一些变化,可能是新版本的自动完成有点不同的风格。但始终应该是一对标签和价值
您也可以向请求中添加选项dataType:'json'
我认为返回这种JSON也会起作用:
{1:'Nokia',2:'Lumia'}
当您使用javascript变量时,autocompleteAC正常工作。。因为AC本身会从变量数组中找到匹配结果。另一方面,如果您调用search.php,AC将把它返回的任何内容作为匹配结果,并且不会尝试进一步匹配 实际上,我认为您在PHP脚本中的查询是错误的,您需要对此进行调试。您正在键入LUMIA,脚本将返回['Nokia']等。这意味着它正在运行此查询 从opcionais中选择*,Opcional如“Nokia%” 而它应该运行 从opcionais中选择*,其中Opcional如“LUMIA%” 好了 编辑:
看起来你根本没有通过ajax发送关键词LUMIA。您需要做的是以这种方式更改js:
$('#val').autocomplete({
source: "search.php?keyword="+$('#val').val(),
});
在php中:
$sql = mysql_query("SELECT * FROM opcionais WHERE Opcional LIKE 'Nokia ".$_GET['keyword']."%'");
或者为了更好的结果:
$sql = mysql_query("SELECT * FROM opcionais WHERE Opcional LIKE '%".$_GET['keyword']."%'");
此外,我建议在查询中使用预先准备好的语句,这些mysql函数是。实际上,查询将返回数据库中的每个诺基亚手机型号。。。我有10个以LUMIA为名的模特。。。因此,当我使用诺基亚%进行查询并键入LUMIA时,应返回所有存在的诺基亚LUMIA XX。。。明白了吗?看来你没有通过ajax发送关键词LUMIA。检查我的编辑。我已经用你的提示更新了一些屏幕。。。但是仍然不起作用:在jQuery代码中观察,如果我放置$function{$'val'.autocomplete{source:search.php?ac=lumia,minLength:5,};};指定GET语句后,插件运行良好…:查看屏幕截图,我认为您应该在HTML下面添加脚本。同时也在考虑您的解决方案。您不应该在keyup事件中调用autocomplete。这是完全错误的。好吧,我尝试使用你的提示将脚本放在我的html下面,但也没有成功。。。在键盘上使用自动完成对我来说很好。。。所以我认为这是一个解决办法。但无论如何还是要感谢:-我在Search.php中得到了准确的返回:{1:'Nokia',2:'Lumia'}而那时我甚至无法获得AC作品,我从jqueryUI下载了最新版本的AutoComplete
$sql = mysql_query("SELECT * FROM opcionais WHERE Opcional LIKE 'Nokia ".$_GET['keyword']."%'");
$sql = mysql_query("SELECT * FROM opcionais WHERE Opcional LIKE '%".$_GET['keyword']."%'");