将2个值传递给javascript函数

时间:2009-12-20 19:39:19

标签: javascript

我正在尝试将2个值传递给javascript xmlHttp请求;这些值被传递给javascript函数。我成功地将单个值传递给javscript函数,但现在我需要传递2个值。粗体值是我想要的javascript中的字符串名称。

 echo "<a href='#' class='thumb'><img class='thumb-img' value = ".$row->aid." onclick='getVote(".$row->aid.", **".$row->atitle."**)' src='images/roadies/th".$row->aid.".jpg' />    </a>";

一个是 int ,另一个是字符串

在javascript中,我不知道如何接收这些值。我以前比较早:

function getVote(int)
{
    xmlhttp=GetXmlHttpObject();
    if (xmlhttp==null)
    {
        alert ("Browser does not support HTTP Request");
        return;
    }
    value = int;

表示单个值。但现在因为要处理2个值,我不知道如何为它编写函数; 我目前(没有成功)尝试这个:

function getVote(int, name)
{
    xmlhttp=GetXmlHttpObject();
    if (xmlhttp==null)
    {
        alert ("Browser does not support HTTP Request");
        return;
    }
    value = int;
    name= char;

请告诉我怎么做?

4 个答案:

答案 0 :(得分:16)

如果我理解正确,你的问题很简单:javascript函数如何接收多个参数?

这很容易,只需在函数声明中用逗号分隔它们,并传递多个值,在函数调用中再次用逗号分隔:

function myFunc(one, two) {
    alert(one); alert(two);
}

myFunc(1,2);

如果您事先不知道要传递/接收多少个参数,只需声明不带参数的函数,并使用函数定义中的内置参数数组:

function myFunc(){
    for (var i=0, numArgs = arguments.length; i<numArgs; i++){
        alert(arguments[i]);
    }
}

如果您需要传递一个完全相同的值列表,但是当您必须处理多个参数并且其中一些是可选的时,上面的方法很好,更好的方法是传递一个对象文字,然后添加'arguments'作为属性:

function myFunc(obj){
    if (typeof(obj.arg1)!="undefined") {
        ....
    }
    if (typeof(obj.arg2)!="undefined") {
        ....
    }
    ...more handling...
}

myFunc({
    arg1: "one"
,   arg2: "two"
,   ...more properties...
});

答案 1 :(得分:8)

您可能希望将标题括在引号中。假设您有一行aid 123 和标题 Hello World 。您想拥有onclick="getVote(123,'Hello World')"

答案 2 :(得分:1)

在JavaScript中,您不需要在参数列表中声明变量类型。所以,你的功能是:

function getVote(myInt, name) {

请确保在将值发送到服务器时,使用myInt.toString()而不是myInt,就像使用name一样。

答案 3 :(得分:1)

function getVote(int, name)
{
    xmlhttp=GetXmlHttpObject();
    if (xmlhttp==null)
    {
        alert ("Browser does not support HTTP Request");
        return;
    }
   alert(int);
   alert(name);
}

一旦将这些变量作为参数,就可以在函数中准备好这些变量 我的代码会提醒他们告诉他们他们已经被定义了