Javascript 通过AJAX访问时,$\u POST出现未定义的索引错误
我正在尝试使用ajax显示从php登录的结果。但这不是工作。像这样显示未定义的索引是错误的 注意:未定义索引:中的userEmail 第10行的C:\xampp\htdocs\controllers\login.controllers.php 注意:中未定义的索引:userPassword 第10行的C:\xampp\htdocs\controllers\login.controllers.php 登录失败 以下是我的源代码: login.views.phpJavascript 通过AJAX访问时,$\u POST出现未定义的索引错误,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我正在尝试使用ajax显示从php登录的结果。但这不是工作。像这样显示未定义的索引是错误的 注意:未定义索引:中的userEmail 第10行的C:\xampp\htdocs\controllers\login.controllers.php 注意:中未定义的索引:userPassword 第10行的C:\xampp\htdocs\controllers\login.controllers.php 登录失败 以下是我的源代码: login.views.php <form id="login
<form id="loginForm" action="/controllers/login.controllers.php" method="post">
<input id ="userEmail" type="text" name="userEmail" placeholder="Email">
<input id ="userPassword" type="password" name="userPassword" placeholder="Password">
<button id ="loginSubmit" type="submit" name="loginSubmit">Login</button>
<div id="msg"></div>
</form>
更新问题:
现在我想在点击提交按钮后添加消息“等待”,在显示结果消息时隐藏它。我该怎么办?。谢谢。试试这个:
$("#loginSubmit").click(function(){
if ($("#userEmail").val() == "" || $("userPassword").val() == ""){
$("div#msg").html("Please enter your email and password");
}else{
var formData = new FormData($("#loginSubmit")[0]);
$.ajax({
url: $("#loginForm").attr("action"),
type: 'POST',
data: formData,
async: false,
dataType: "json",
success: function (data) {
//here success
},
cache: false,
contentType: false,
processData: false
});
}
$("#loginForm").submit(function(){
return false;
})
});
用这个
$("#loginForm").serialize()
而不是
$("#loginForm:input").serializeArray()
您应该需要在
表单上调用serialize()
,而不是在输入列表上调用serializeArray()
。试试这个:
$.post(
$("#loginForm").attr("action"),
$("#loginForm").serialize(),
function(data){
$("div#msg").html(data);
}
);
函数之间的区别在于输出的格式serializeArray()
返回一个对象,该对象的格式可能不适合您的接收端点,并且serialize()
将表单的值转换为查询字符串。您必须使用
$.post(
$("#loginForm").attr("action"),
$("#loginForm:input").serialize(),
function(data){
$("div#msg").html(data);
}
请尝试$(“#loginForm”).serialize()
而不是$(“#loginForm:input”).serializeArray()
谢谢。成功了。但是你能解释一下他们之间的不同吗?我为你添加了一个答案。现在我想在点击提交按钮后添加消息“等待”,在显示结果消息时隐藏它。我该怎么办?。Tks
$.post(
$("#loginForm").attr("action"),
$("#loginForm").serialize(),
function(data){
$("div#msg").html(data);
}
);
$.post(
$("#loginForm").attr("action"),
$("#loginForm:input").serialize(),
function(data){
$("div#msg").html(data);
}