是否可以将3个字符串传递给1个javascript函数?

时间:2015-03-12 16:33:35

标签: javascript

如何将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)" />

4 个答案:

答案 0 :(得分:0)

只需使用树参数创建一个新函数。 Javascript是动态类型的,因此您不必指定这些参数具有的类型。即使最后一个参数是一个整数,当你将它整合到现有字符串时,Javascript会自动将该整数转换为字符串。

&#13;
&#13;
function myfunc(brand, item, idtoEdit) {
  xmlhttp.open("GET","search.php?brand="+brand+"&item="+item+"&id="+IdtoEdit,true)
}
&#13;
&#13;
&#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);