私はjQueryを使ってテキストフィールドでオートコンプリートを行っています。そのオートコンプリートからのユーザーのクリックに基づいて、私はajaxリクエストを行う別の関数を呼び出したいと思う。どのようにこれをすることができaccomplished.Hereは、最初のオートコンプリート機能である:Ajaxを別のAjaxから呼び出す
function lookup(inputString) {
if(inputString.length == 0) {
// Hide the suggestion box.
$('#suggestions').hide();
} else {
$.post("ajax/autocomplete.php", {queryString: ""+inputString+""}, function(data){
if(data.length >0) {
$('#suggestions').show();
$('#autoSuggestionsList').html(data);
}
});
}
} // lookup
function fill(thisValue) {
$('#inputString').val(thisValue);
setTimeout("$('#suggestions').hide();", 200);
}
と第二AJAX呼び出し:
function showCar(str)
{
if (str=="")
{
document.getElementById("inputString").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)
{
document.getElementById("carchoice").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","ajax/getcar.php?q="+str,true);
xmlhttp.send();
}
とフォームから関数への最初の呼び出し:
<input type="text" size="50" value="" id="inputString" onkeyup="lookup(this.value);" onblur="fill();"/>
<div class="suggestionsBox" id="suggestions" style="display: none;">
<img src="images/upArrow.png" style="position: relative; top: -12px; left: 30px;" alt="upArrow" />
<div class="suggestionList" id="autoSuggestionsList">
</div>
なぜ1つのAJAX呼び出しでjQueryを使用し、もう1つのAJAX呼び出しでネイティブXMLHTTPを使用していますか? –
um ..私はちょうどその混乱を書き直すだろう、あなたはjQueryの。ポスト()&非jQueryのajaxコールがありますか?あなたはそれを考えずにコピー&ペーストしたように見えます。 – Jakub
私は知らない? :)私は他の例に基づいてjQueryオートコンプリートを行う方法しか知りませんでしたが、jQueryのajax関数の経験はほとんどありません – savagenoob