これが私のシナリオです。検索フォームに入力した内容に基づいて、すべてが正常に機能し、適切な画像が表示されました。しかし、サイトにその自動提案機能を追加したので、検索ボックスに何を書いて検索を押しても、入力フォームがphpにデータを送信していないようです。フォームに何かを入力しても、それでもこの条件は偽になっています。( $name にはユーザー入力の値が含まれます):
if(!empty($name))
これが私のhtmlフォームです:
<form class="searchform" action="webpage.php" method="POST">
<input class="searchfield autosuggest" type="text" placeholder="Search for a name " onFocus="if (this.value == 'Search...') {this.value = '';}" onBlur="if (this.value == '') {this.value = 'Search...';}" />
<input class="searchbutton" type="submit" value="Go" />
</form>
自動提案用に追加した最新のスクリプトは次のとおりです。
//Autosuggest starts here
$(document).ready(function(){
$('.autosuggest').keyup(function(){
var search_term= $(this).attr('value');
$.post('search.php',{search_term:search_term},function(data){
$('.results').html(data);
$('.results li').click(function(){
var result_value = $(this).text();
$('.autosuggest').attr('value',result_value);
$('.results').html('');
});
});
});
});
</script>
最後に、これはデータベースを介して autosuggest を照会するための別の search.php ファイルです。
if(isset($_POST['search_term'])== true && empty($_POST['search_term'])== false)
{
$search_term = mysql_real_escape_string($_POST['search_term']);
$query = mysql_query("select * from user_info where Name LIKE '$search_term%'");
while(($rows = mysql_fetch_assoc($query))!== false)
{
echo '<li>'.$rows['Name'].'</li>';
}
}
現在、自動提案は機能していますが、メイン サイトではありません。画像またはphpが入力フォームからデータを受信していないというポジショニングの問題でしょうか?