我正在尝试将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;
请告诉我怎么做?
答案 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);
}
一旦将这些变量作为参数,就可以在函数中准备好这些变量 我的代码会提醒他们告诉他们他们已经被定义了