我有一个带有此代码的 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(以前用过)。