如何将3个字符串,2个文本从输入字段和1个整数值传递给同一个函数,以便我可以生成对实时数据库搜索脚本的xmlhttp.open请求?
这样它就可以产生...... ....
XML ..
xmlhttp.open("GET","search.php?brand="+brand+"&item="+item+"&id="+IdtoEdit,true);
mlhttp.send();
更新
JS
function showResult(str,IdtoEdit) {
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 (xmlhttp.readyState==4 && xmlhttp.status==200) {
document.getElementById("livesearch").innerHTML=xmlhttp.responseText;
document.getElementById("livesearch").style.border="1px solid #A5ACB2";
}
}
xmlhttp.open("GET","search.php?q="+str+"&id="+IdtoEdit,true);
xmlhttp.send();
}
我希望2个字段能够传递给这个1函数...
...输入
<input type="text" id="brandsearch" value="" onkeyup="showResult(this.value,currCount); showsearch('livesearch');" autocomplete="off" onKeyPress="return disableEnterKey(event)" />
<input type="text" id="itemsearch" value="" onkeyup="showResult(this.value,currCount); showsearch('livesearch');" autocomplete="off" onKeyPress="return disableEnterKey(event)" />
答案 0 :(得分:0)
只需使用树参数创建一个新函数。 Javascript是动态类型的,因此您不必指定这些参数具有的类型。即使最后一个参数是一个整数,当你将它整合到现有字符串时,Javascript会自动将该整数转换为字符串。
function myfunc(brand, item, idtoEdit) {
xmlhttp.open("GET","search.php?brand="+brand+"&item="+item+"&id="+IdtoEdit,true)
}
&#13;
答案 1 :(得分:0)
所以制作一个所有元素都会触发的功能。让它查找值并进行Ajax调用。
function makeCall() {
var val1 = document.getElementById("tb1").value;
var val2 = document.getElementById("tb2").value;
var val3 = document.getElementById("tb3").value;
console.log(val1, val2, val3);
}
对keyup进行Ajax调用会让一个快速的typer变得混乱!你需要限制/去抖电话!
答案 2 :(得分:0)
你会想要的东西:
function showResult(IdtoEdit) {
var brand = document.getElementById("brandsearch").value
var item = document.getElementById("itemsearch").value
if ((brand.length==0)&&(item.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 (xmlhttp.readyState==4 && xmlhttp.status==200) {
document.getElementById("livesearch").innerHTML=xmlhttp.responseText;
document.getElementById("livesearch").style.border="1px solid #A5ACB2";
}
}
xmlhttp.open("GET","search.php?brand="+brand+"item="+item+"&id="+IdtoEdit,true);
xmlhttp.send();
}
并输入您的输入字段:
<input type="text" id="brandsearch" value="" onkeyup="showResult(currCount); showsearch('livesearch');" autocomplete="off" onKeyPress="return disableEnterKey(event)" />
<input type="text" id="itemsearch" value="" onkeyup="showResult(currCount); showsearch('livesearch');" autocomplete="off" onKeyPress="return disableEnterKey(event)" />
答案 3 :(得分:0)
除非非常需要这个函数灵活(即,还有其他字段也会调用此函数),我只需从函数本身中获取值:
function showResult(IdtoEdit) {
var sBrandVal = document.getElementById("brandsearch").value;
var sItemVal = document.getElementById("itemsearch").value;
. . .
xmlhttp.open("GET","search.php?brand=" + sBrandVal + "&item=" + sItemVal + "&id=" + IdtoEdit, true);
xmlhttp.send();
}
然后,您只需使用:showResult(currCount);
如果你需要这种灵活性,你可以在函数中添加第二个参数,如下所示:
function showResult(str1, str2, IdtoEdit) {
. . .
xmlhttp.open("GET","search.php?q1=" + str1 + "&q2=" + str2 + "&id=" + IdtoEdit, true);
xmlhttp.send();
}
然后,当您调用它时,您将更改showResult()
调用以传递来自两个字段的值。 。 。 showResult(this.value, currCount);
将成为这些(针对两个不同的领域):
showResult(this.value, document.getElementById("itemsearch").value, currCount);
。 。 。和。 。
showResult(document.getElementById("brandsearch").value, this.value, currCount);