オートコンプリート (提案) フィールドを作成したので、入力すると、フィールドの下にテキストとして提案が表示されます。JavaScript を再構築し、テキストをクリック可能にしました。そのため、モーダルをクリックすると表示されます (別の小さなダイアログ)。
私が望むのは、提案フィールドからモーダルにテキストを表示することだけです。$.post("thesuggtest.php") メソッドを使用しているのは、選択した提案テキスト (クリックされる) を取得し、php と mysql を介してモーダルでそれに関する情報を取得する必要があるためです。
これは私がそのために使用している主な JavaScript ですが、いくつかの問題があります。
function showHint(str)
{
if (str.length==0)
{
document.getElementById("txtHint").innerHTML="";
return;
}
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
comeon = document.getElementById('comeon');
document.getElementById('predlozi').innerHTML='<a data-toggle="modal" data-backdrop="static" href="#myMail" class="label ttip_b" title="New messages">' + xmlhttp.responseText + '</a><div class="modal hide fade" id="myMail"><div class="modal-header"><button class="close" data-dismiss="modal">×</button><h3>New messages</h3></div><div class="modal-body"><div id="comeon"></div>' + $.post("thesuggtest.php", { 'suggestion' : xmlhttp.responseText },function(data){comeon.innerHTML(data);console.log('Error:', data);}); + '</div></div>';
}
}
xmlhttp.open("GET","gethint.php?q="+str,true);
xmlhttp.send();
}
gethint.php ファイルを使用して、フィールドからの入力値に一致する提案を取得しています (配列から取得します)。問題は、モーダル (ダイアログ) でテキストをエコーできないことです。
document.write(data) を配置すると、値がエコーされますが、空白のページになります。comeon.innerHTML(data) を配置すると、Uncaught TypeError: Cannot call method 'innerHTML' of null. が発生します。このタイプのエラーは要素 comeon を見つけることができず、null を返すためであることはわかっています。また、エコーされたテキストがあるべきモーダルで [object Object] を取得します。
何か助けはありますか?ありがとう。