我有一个带有此代码的 jQuery 自动完成字段:
var tags = ["a", "ab", "abc", "abcd", "adbce", "abcdef", "abcdefg", "abcdefgh", "abcdefghi", "abcdefghij", "abcdefghijk", "abcdefghijkl", "abcdefghijklm", "abcdefghijklmn", "abcdefghijklmno", "abcdefghijklmnop", "abcdefghijklmnopq", "abcdefghijklmnopqr", "abcdefghijklmnopqrs", "abcdefghijklmnopqrst", ];
$("input#name").autocomplete({
position: {
offset: "0 -10px",
},
source: tags
});
它使用“标签”数组作为示例输入数据正常工作。
现在我需要一组 MySQL 查询结果而不是那个示例数组。我所做的是将函数调用更改为:
$("input#name").autocomplete({
position: {
offset: "0 -10px",
},
source: "http://absolutepathtofile/autosuggest.php"
});
我使用绝对路径来确保我没有在那里犯一些愚蠢的错误,因为我无法让文件返回到自动完成中。我去过 jQuery 文档并找到了一些使用 PHP/MySQL 来返回自动完成结果的示例,但我无法让它工作。
这是我在 autosuggest.php 中尝试过的:
$term = $_REQUEST['term'];
$query = "SELECT * FROM merchants WHERE business_name LIKE '%$term%'";
$result = mysql_query($query);
$k=0;
while($row=mysql_fetch_array($result)){
$aUsers[$k]=$row['business_name'];
$k++;
}
echo json_encode($aUsers);
我让它尽可能简单,但它没有用。
然后我测试了是否发送了 JSON,所以我这样做了:
$array[0]="test";
$array[1]="test1";
echo json_encode($array);
它不起作用。我在任何地方都找不到这个问题,我做错了什么?PHP 版本是 5.3.10,它有 json_encode(以前用过)。