私のJQueryオートコンプリートが常に提案メニューを表示しない理由について、誰かが考えられますか? いつも同じ有効なキーワードを入力していますが、結果が常に表示されるわけではありません。
これは私が使用しているJSです:
$(document).ready(function(){
$("input#q").autocomplete({
minLength: 2,
delay: 350,
source: "ac.php"
});
});
Firefox の Web コンソールを確認すると、ac.php が OK ステータス コードで読み込まれていることがわかります。さまざまなキーワードを試してみましたが、どれも表示されません。これはすべて断続的ですが、ページを数回リロードするかブラウザを閉じると、再び機能することがあります。
手動で ac.php?term=whatever にアクセスすると、常に有効なキーワードの結果が表示されます。
ただし、ソースを ["Hi", "There"] に設定すると、正しく動作します。
これらをドキュメントの head タグにロードしています。
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.23/jquery-ui.min.js"></script>
edit: ac.php にデータを返す関数
private function to_json($results)
{
$output = array();
foreach($results as $result)
{
$output[] = $result->name; // nothing is escaped here
}
if(sizeof($output) > 1)
{
$uniques = array_unique($output);
$buffer = array();
foreach($uniques as $unique)
{
$buffer[] = $unique;
}
$output = $buffer;
}
return json_encode($output);
}
出力例:
["Sennheiser MM-100 Stereo Bluetooth 2.0 Headset Invisible Mic USB","Polycom VSX7000E W\/POWERCAM CAMERA\/ Soundstation VTX1000\/MIC\/CODE54 (Maintenance Contract Required)","Polycom HDX 7000-720 Kit W\/ Eagle Eye HD Camera HDX Mic","Polycom HDX 6000-720V Kit W\/ Eagle Eye HD Camera Mic Remote"]
どんな助けでも大歓迎です。
ありがとう