次のコードを含む 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
});
「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 があります (以前は使用していました)。