我想使用Ajax的实时搜索功能。首先,我想在HTML中选择1个类别的多个选项,如下所示。
<form >
<select name="category" id="category" onchage="showResult()" title="choose the category which you'll search">
<option value="">카테고리를 선택하세요</option>
<option value="dic">사전</option>
<option value="term">의학용어 영한 표준번역</option>
<option value="kcd">질병표준코드</option>
<option value="3d">3D</option>
<option value="ind">색인</option>
<option value="toc">목차</option>
<option value="fig">그림</option>
<option value=:tab">표</option>
<option value="sw">소프트웨어</option>
</select>
<input type="hidden" name="category" />
其次,我将输入要搜索的文本。
<p><b>livesearch </b><input type="text" size="30" onkeyup="showResult(this.value)"></p>
</form>
<p> Hint -- <span id="livesearch"></span></p>
而且,Javascript 代码对我来说很困难,因为我不知道如何从 html 中的表单接收 2 个变量。
这是我的JS。
function showResult(str) {
if (str.length==0) {
document.getElementById("livesearch").innerHTML="";
document.getElementById("livesearch").style.border="0px";
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 (this.readyState==4 && this.status==200) {
document.getElementById("livesearch").innerHTML=this.responseText;
document.getElementById("livesearch").style.border="1px solid #A5ACB2";
}
};
var category = document.getElementById('category');
category.onchange = function(){
document.querySelector("input[name=category]").value = this.value;
}
xmlhttp.open("GET","livesearch_"+category.value+.php?q="+qstr,true);
xmlhttp.send();
}
}
请给我一份你慷慨的善意。
最后我解决了上面的问题。
完整代码如下所示。
<script>
function showUser1(str) // call function without parameter
{
if (window.XMLHttpRequest)
{
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("hint").innerHTML=xmlhttp.responseText;
}
}
var category = document.getElementById('category').value;
var qstr = document.getElementById('qstr').value; // get value of qstr
xmlhttp.open("GET","./livesearch_" +category + ".php?q="+qstr,true);
xmlhttp.send();
}
</script>
和HTML代码一样。
<form>
<select name="category" id="category" onchange="showUser1()" title="choose
the language you want">
<option value="dic">사전</option>
<option value="term">의학표준용어 : 영-한 </option>
</select>
Input: <input name="search" id="qstr" onkeyup="showUser1()" >
</form>
<div id="hint"><b>Disease information will be listed here.</b></div>
感谢您的关注。