jQuery UI Autocomplete を使用して、MySQL データベース内の人々の名前のリストを表示しようとしています。基本的な機能は機能しています - 2文字以上入力すると、可能な名前のリストが表示されます - しかし、マウスをリストの上に置くか、下向きのキーを押してリストにアクセスすると、消えます (下の2つのスクリーンショットはこれを説明します)。
これが意味することは、リストに実際にアクセスできないため、オートコンプリートが無意味になるということです! 誰かが助けることができれば、私は最も感謝しています! スクリーンショットとコードは以下に掲載されています。
最初の数文字を入力すると、メニューが表示されます
ただし、マウスをホバーするか、「下」キーを押すと、選択を行う前に消えます
HTML:
<div id="chooseaccount">
Choose Account to Edit
<div id="iechooseaccountlabel" class="labeldiv">
<!--[if IE]>
Enter Student Name
<![endif]-->
</div>
<input type="text" class="inputs" id="editname" placeholder="Enter Student Name" />
</div>
jQuery:
$(document).ready(function(){
$("#editname").autocomplete({
source: "names.php",
minLength: 2,
});
});
PHP:
<?php
$mysqli = new mysqli('********', '********', '**********', '*********');
$text = $mysqli->real_escape_string($_GET['term']);
$query = "SELECT name FROM users WHERE name LIKE '%$text%' ORDER BY name ASC";
$result = $mysqli->query($query);
$json = '[';
$first = true;
while($row = $result->fetch_assoc())
{
if (!$first) { $json .= ','; } else { $first = false; }
$json .= '{"value":"'.$row['name'].'"}';
}
$json .= ']';
echo $json;
?>