0

我刚刚习惯了 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

4 回答 4

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 错误。

于 2013-07-24T10:52:22.487 回答
2

试试这个

xmlhttp.open("GET","http://localhost/iobserve/php/getTeachers.php?schoolName="+schoolName+"&departmentName="+str,true);
于 2013-07-24T10:51:57.027 回答
2

像这样试试

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

您需要回显 php 变量。并尝试在您发送的两个变量之间放置“&”,例如

xmlhttp.open("GET",
"http://localhost/iobserve/php/getTeachers.php?schoolName="+schoolName+"&departmentName="+str,true);    ...    
于 2013-07-24T10:53:24.543 回答
1

您必须&在参数之间包含,例如

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

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

checkTeacherList(this.value,<?php echo $user_login;?> );
于 2013-07-24T10:53:23.190 回答