在jquery onchange事件中发送多个参数

时间:2013-07-24 10:50:10

标签: php ajax

我只是习惯了jquery,并且有一个提示onchange事件的下拉框:

<select name="department_list" id="department_list" onchange="checkTeacherList(this.value);" > 

这很好,调用的AJAX命令是:

function checkTeacherList(str) 
{
...
xmlhttp.open("GET","http://localhost/iobserve/php/getTeachers.php?departmentName="+str,true);
...    
}

但是我也想使用$user_login变量:

<select name="department_list" id="department_list" onchange="checkTeacherList(this.value,$user_login );" > 

并且AJAX命令是:

function checkTeacherList(str, schoolName) 
{
...
xmlhttp.open("GET","http://localhost/iobserve/php/getTeachers.php?schoolName="+schoolName+"&departmentName="+str,true);    ...    
}

但这似乎不起作用。我做错了什么?

编辑:

问题是,只要我从函数调用中添加第二个参数:

onchange="checkTeacherList(var1);"

onchange="checkTeacherList(var1, var2);"

不调用该函数。使用逗号作为分隔符时语法是否错误?

4 个答案:

答案 0 :(得分:3)

当使用GET传递的多个变量时,您必须添加&

url?var1=value1&var2=value2&var3=value3...

另外你说你正在使用jquery,但对我来说,如果你想使用jquery和GET进行AJAX调用,你似乎正在使用普通的javascript:

$.get("url", {var1: value1, var2: value2}, function(data){
    //do something when the AJAX call finishes, 
    //the var data contains anything echoed by the script called.
});

编辑:关注你的问题。

onchange="checkTeacherList(this.value, '<?php echo $user_login;?>');"

如果你在HTML脚本中使用PHP变量,你必须回应它,你也必须使用',否则会导致javascript错误。

答案 1 :(得分:2)

试试这个

xmlhttp.open("GET","http://localhost/iobserve/php/getTeachers.php?schoolName="+schoolName+"&departmentName="+str,true);

答案 2 :(得分:2)

试试这个

checkTeacherList(this.value,<?php echo $user_login;?> );

你需要回显php变量。并尝试放入'&amp;'在你发送的两个变量之间

xmlhttp.open("GET",
"http://localhost/iobserve/php/getTeachers.php?schoolName="+schoolName+"&departmentName="+str,true);    ...    

答案 3 :(得分:1)

您必须在参数之间加入&,例如

xmlhttp.open("GET","http://localhost/iobserve/php/getTeachers.php?schoolName="+schoolName+"&departmentName="+str,true);

然后在调用部分编辑,像这样,

checkTeacherList(this.value,<?php echo $user_login;?> );