現在、Ajax検索の提案入力に取り組んでおり、これで完了ですが、提案を選択してフォームを自動送信するときにこのスクリプトを作成したいだけです。
これが私のJavascriptです:
<script>
function suggest(inputString){
if(inputString.length == 0) {
$('#suggestions').fadeOut();
} else {
$.ajax({
url: "autosuggest.php",
data: 'act=autoSuggestUser&queryString='+inputString,
success: function(msg){
if(msg.length >0) {
$('#suggestions').fadeIn();
$('#searchBoxSuggestions').html(msg);
$('#country').removeClass('load');
}
}
});
}
}
function fill(thisValue) {
$('#keyword').val(thisValue);
setTimeout("$('#suggestions').fadeOut();", 600);
}
function fillId(thisValue) {
$('#country_id').val(thisValue);
setTimeout("$('suggestionsBox').fadeOut();", 600);
}
</script>
ここに私のHTMLフォームがあります:
<form method="get" action="search.php" autocomplete="on" name="form_search">
<input type="text" size="25" value="" id="keyword" name="keyword" onkeyup="suggest(this.value);" onblur="fill();fillId();" class="" />
<input type="hidden" name="country_id" id="country_id" value="" />
<input type="submit" value=" " id="searchbutton" />
<div class="suggestionsBox" id="suggestions" style="display: none;">
<div id="searchBoxSuggestions"> </div>
</div>
</form>
そして、必要に応じて autosuggest.php を実行します:
<?php
if(isset($_REQUEST['act']) && $_REQUEST['act'] =='autoSuggestUser' && isset($_REQUEST['queryString'])) {
$db_host = 'localhost';
$db_user = 'root';
$db_password = 'mypass';
$db_name = 'mydb';
$connect = mysql_connect($db_host, $db_user ,$db_password);
$db = mysql_select_db($db_name,$connect);
mysql_query("SET NAMES utf8");
if($db){
$string = '';
$queryString = $_REQUEST['queryString'];
$query = "SELECT * FROM videos WHERE title like '%" .$queryString . "%' and approved='yes' ORDER BY title LIMIT 10";
$resource = mysql_query($query);
if($resource && mysql_num_rows($resource) > 0) {
$string.= '<ul>';
while($result = mysql_fetch_array($resource)){
$title= addslashes($result['title']);
$indexer= addslashes($result['indexer']);
$string.= '<li onClick="fillId(\''.$indexer.'\');fill(\''.$title.'\');"><b>'.$title.'</b></li>';
}
$string.= '</ul>';
} else {
$string.= '<li>No Record found</li>';
}
echo $string;
exit;
}
exit;
}
?>
このコードを使用して入力フィールドに名前を入力すると、keyword
次のようなタイトルの候補が表示されます。
提案されたタイトルをクリックすると、入力している入力フィールドにそのタイトルが入力され、送信ボタンを押すと検索が開始されます。
そのタイトルを入力に入れるのではなく、タイトルをクリックしたときにフォームを自動送信するようにするにはどうすればよいですか?
前もって感謝します!