我正在尝试使用Jquery Ajax调用向php发送两个变量。如果async设置为false,则调用有效,但如果async为true,则调用失败。当只使用表单输入一个变量时,代码也可以工作(基本上得到输入缺失的响应),但是,当给出两个输入时,代码返回一个未定义的错误。我能得到一些建议吗?好好玩了一段时间。
发布编辑 - 我纳入了建议的更改。修改后的代码不起作用
这是我现在拥有的Jquery代码 -
$( document ).ready(function() {
$("#callLogin").click(function(){
var username = $("#username").val();
var password = +$("#login_password").val();
$.ajax({
url: "login.php",
type: "POST",
async: true,
data: 'username=' +username + '&login_password='+password,
success: function(response){
if(response!=""){
alert(response);
$("#loginErrMsg").html(response);
$("#myModal").css("display","block");
}},
error : function (ts) {
alert(ts.responseStatus);
}
});
});
});
还有一个观察:我还尝试序列化表单数据,然后将其发送到PHP。它似乎工作的唯一方法是我改变async:false。任何帮助将不胜感激
答案 0 :(得分:0)
当你想在ajax调用中传递多个数据时,你可以像我在下面的代码中所示那样传递。
$( document ).ready(function() {
$("#callLogin").click(function(){
var username = $("#username").val();
var password = +$("#login_password").val();
$.ajax({
url: "login.php",
type: "POST",
async: true,
data: 'username=' +username + '&login_password='+password,
success: function(response){
if(response!=""){
alert(response);
$("#loginErrMsg").html(response);
$("#myModal").css("display","block");
}},
error : function (ts) {
alert(ts.responseStatus);
}
});
});
});
尝试这可能会解决您的问题。
答案 1 :(得分:0)
如果你想为html指定一些东西,你必须把它放在括号之间。
$("#loginErrMsg").html(response);
答案 2 :(得分:0)
通过引用此处发布的类似问题解决了问题。基本上需要设置$("#callLogin")。click(function(e){e.preventDefault(); ....}。表单中的提交函数被调用两次,这就是创建问题。感谢所有的帮助。