PHPスクリプトで入力テキストボックスのオートコンプリートを行っています。これがジャバスクリプトです。すべて正常に動作します... search.php は、選択するオプションを div に入力するだけです。これが本当の問題です。入力テキスト ボックスをタグ内に配置すると、オートコンプリート オプションを表示する div がページに表示されません。ページのどこにでもdivを配置でき、ページのどこにもない限り機能します。
<script type="text/javascript">
$(document).ready(function(){
$(".search").keyup(function()
{
var searchbox = $(this).val();
var dataString = 'searchword='+ searchbox;
if(clan_id=='')
{
}
else
{
$.ajax({
type: "POST",
url: "search.php",
data: dataString,
cache: false,
success: function(html)
{
$("#display").html(html).show();
}
});
}return false;
});
});
jQuery(function($){
$("clan_id").Watermark("Search");
});
</script>
search.php は次のコードを返します:
echo "<div class=\"display_box\" align=\"left\" onclick=\"document.getElementById ('clan_id').value =' $final_clan_id '\">\n";
echo "<img src=\" $img \" style=\"width:25px; float:left; margin-right:6px\" />$final_clan_name <br/></div>\n";
オートコンプリートはこれで動作します:
echo "<input type \"text\" id=\"clan_id\">\n";
オートコンプリートはこれで失敗します:
echo "<form name ='showClan' method='post' action='" . htmlentities($_SERVER['PHP_SELF']) . "'>\n";
echo "<input type \"text\" id=\"clan_id\">\n";
echo "</form>";