オートコンプリートフォームを作成するPHPとJQueryを少し持っています。
<?
mysql_select_db($database_database_connection, $database_connection);
$query = "SELECT * FROM Device_tbl";
$result=mysql_query($query, $database_connection) or die(mysql_error());
$findrow = array();
while($row = mysql_fetch_assoc($result)){
$manufac = $row['Manufacturer'];
$mod = $row['Model'];
$string = $manufac.' '.$mod;
$findrow[] = $string;
}
?>
<script type="text/javascript">
$(document).ready(function() {
$("#search_input").watermark("Begin Typing to Search");
var availableTags = <? echo json_encode($findrow);?>;
$( "#search_input" ).autocomplete({
source: availableTags
});
$("#search_input").bind("autocompleteselect", function() {
var search_input = $(this).val();
if (search_input =='') search_input ='*';
var dataString = 'keyword='+search_input;
if (search_input.length > 2 || search_input=='*') {
$.ajax({
type: "GET",
url: "core/functions/searchdata.php",
data: dataString,
success: function(server_response) {
$('#searchresultdata').empty();
$('#searchresultdata').append(server_response);
$('span#category_title').html(search_input);
}
});
}
return false;
});
$("#search_input").trigger('keyup');
});
</script>
searchdata.php
mysql_select_db($database_database_connection, $database_connection);
$query = "SELECT Image, Manufacturer, Model FROM Device_tbl WHERE Manufacturer LIKE '%$keyword%' OR Model LIKE '%$keyword%'";
if ($keyword=='*') $query = "SELECT Image, Manufacturer, Model FROM Device_tbl";
$result=mysql_query($query, $database_connection) or die(mysql_error());
if($result){
if(mysql_affected_rows($database_connection)!=0){
while($row = mysql_fetch_object($result)){
?>
<div class="hold-cont">
<div class="holder">
<div class="image-hold" >
<img class="image-icon" src="<? echo $deviceimg.($row->Image); ?>"/>
</div>
</div>
<div class="device-name devicename-txt"><? echo($row->Manufacturer. ' ' .$row->Model); ?></div>
</div>
<?
}
}else {
echo 'No Results for :"'.$_GET['keyword'].'"';
}
}
else {
echo 'Parameter Missing';
オートコンプリート部分は正常に機能しますが、機能しないのは、選択した値で.ajaxを実行していることです。たとえば、「Apple iMac」と入力し始めて、「Ap」までしか入力できなかったとします。提案はAppleiMacですが、提案をクリックすると、「Ap」でクエリが実行されます。つまり、クリックされたものではなく、入力されたものに対してのみクエリが実行されます。
ユーザーが提案をクリックするか、Enterキーを押すと、これを機能させる方法はありますか?