我有一个搜索表单,我想通过jQuery自动完成显示建议,当输入3个字符时。这些建议来自mySQL DB。 发生了什么:jQuery确实将类型化的字符成功传输到PHP文件,并成功嵌入到mySQL查询中。 当我用假定的搜索词分开打开PHP文件时,f.e.像这样:/soplogsearch.php?term=xyz
它完美的作品,我看到的目标是echo json_encode($return_arr);
的结果,但回到HTML搜索表单文件自动完成不提示的东西。我在控制台中没有错误。我试图在HTML文件的其他地方回显json_encode,它的输出是Null
。PHP数组作为JSON响应jQuery自动完成
我已经做了小提琴的(很简单)的Javascript/jQuery和HTML设置:https://jsfiddle.net/9bf6s07f/1/
相关的PHP代码如下所示:
if (isset($_GET['term']))
{
$term = $_GET['term'];
$termwild = "%$term%";
$return_arr = array();
$service = mysql_query("SELECT DISTINCT service FROM master WHERE service LIKE \"" . $termwild . "\"");
while ($data = mysql_fetch_array($service))
{
$return_arr[] = $data[0];
}
json_encode($return_arr);
echo json_encode($return_arr);
}
编辑:为了更快地访问我米包括代码的HTML和jQuery零件,而不是在这里的链接到你的小提琴https://jsfiddle.net/9bf6s07f
<body>
<label>Service:</label>
<input type='text' name='' value='' class='auto'>
</body>
和jQuery:
$(document).ready(function() {
$(function() {
$(".auto").autocomplete({
source: "soplogsave.php",
minLength: 3
});
});
});
有人知道我在做什么错吗?我用一组javascript变量测试了自动完成,并且它工作正常。
编辑2:因为所有的评论似乎意味着我的PHP是错误的,我有一个错误在控制台中,我从控制台的网络选项卡截图:http://i.imgur.com/i6nAQ98.png
我不认为你的查询是正确的。试试这个: '$ service = mysql_query(“SELECT DISTINCT服务FROM主WHERE服务LIKE'%{$ term}%'”);' 我正在做一个类似的事情,在我的应用程序中,就像你试图做的一样。 – ArtleMaks
你的PHP文件是否返回结果? – HJerem
但这个查询确实有效! mysql_fetch_array – sardine