PHP Ajax表单验证未通过json
PHP Ajax form validation not passing json
我几天来一直在尝试修复我的代码,但没有成功。我正在尝试使用AJAX验证我的登录表单。Jquery AJAX一直用记录控制台
检查字段时出现问题
这是我的Jquery脚本,它与登录表单在同一页面上(Jquery包含在标题中):
var data = {};
$(document).ready(function() {
$('input[type="submit"]').on('click', function() {
resetErrors();
var url = 'login.php';
$.each($('form input, form select'), function(i, v) {
if (v.type !== 'submit') {
data[v.name] = v.value;
}
}); //end each
$.ajax({
dataType: 'json',
type: 'POST',
url: url,
data: data,
success: function(resp) {
if (resp === true) {
//successful validation
$('form').submit();
return false;
} else {
$.each(resp, function(i, v) {
console.log(i + " => " + v); // view in console for error messages
var msg = '<label class="error" for="'+i+'">'+v+'</label>';
$('input[name="' + i + '"], select[name="' + i + '"]').addClass('inputTxtError').after(msg);
});
var keys = Object.keys(resp);
$('input[name="'+keys[0]+'"]').focus();
}
return false;
},
error: function() {
console.log('there was a problem checking the fields');
}
});
return false;
});
});
function resetErrors() {
$('form input, form select').removeClass('inputTxtError');
$('label.error').remove();
}
我的表格:
<label>Username *</label>
<input name="user" class="form-control" placeholder="Username" required autofocus><br>
<label>Password *</label><br>
<input type="password" name="password" class="form-control" placeholder="Password" required>
<input type="submit" name="submit" value="login" />
我的PHP(删除了不相关的代码):
else{
$_SESSION['errors']['user'] = "login failed";
echo "Login failed: (" . $stmt->errno .")" . $stmt->error;
}
$stmt->close();
if(count($_SESSION['errors']) > 0){
if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
header('Content-type: application/json');
echo json_encode($_SESSION['errors']);
exit;
}
}
经过我自己的一些研究,我相信我的Jquery有问题,但我一直没能找到。
提前感谢!:)
你的代码有很多颜色,试试这个
<!DOCTYPE 'html'>
<html>
<head>
<script src="jquery.js" type="text/javascript"></script>
<script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.9/jquery.validate.min.js"></script>
<script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.11.1/jquery.validate.min.js"></script>
</head>
<body>
<form id="frmAdd" method="post" onsubmit="return false">
<label>Username *</label>
<input name="user" class="form-control" placeholder="Username" required autofocus><br>
<label>Password *</label><br>
<input type="password" name="password" class="form-control" placeholder="Password" required>
<input type="submit" name="submit" value="login" />
</form>
<script>
var data = {};
$(document).ready(function() {
$("#frmAdd").validate({
submitHandler: function() {
$("#frmAdd").submit();
}
});
$('#frmAdd').on('submit', function() {
var url = 'login.php';
$.each($('form input, form select'), function(i, v) {
if (v.type !== 'submit') {
data[v.name] = v.value;
}
}); //end each
$.ajax({
dataType: 'json',
type: 'POST',
url: url,
data: data,
success: function(resp) {
if (resp === true) {
//successful validation
$('form').submit();
return false;
} else {
$.each(resp, function(i, v) {
console.log(i + " => " + v); // view in console for error messages
var msg = '<label class="error" for="'+i+'">'+v+'</label>';
$('input[name="' + i + '"], select[name="' + i + '"]').addClass('inputTxtError').after(msg);
});
var keys = Object.keys(resp);
$('input[name="'+keys[0]+'"]').focus();
}
return false;
},
error: function() {
console.log('there was a problem checking the fields');
}
});
return false;
});
});
</script>
</body>
</html>
相关文章:
- 验证我的代码json
- Node+Json验证键嵌套数组
- 获取json结果的身份验证问题
- 将电子邮件验证正则表达式字符串存储在JSON中
- json数据验证,使用angular Js和javascript进行输入值验证
- 接收package.json的解析错误.验证为有效的json
- AJAX表单,通过JSON响应进行php验证
- 使用 json 后端对 jquery-mobile 应用程序进行身份验证(制作 API)
- 验证后 JSON 数据服务器端
- jQuery,CORS,JSON(不带填充)和身份验证问题
- 在 php 中验证 json 架构
- 在另一个函数调用之前验证 JSON 响应
- 验证 PHP 中的字符串以进行 JSON 输出
- express.js - 最佳 POST JSON 架构验证器
- 如何向需要身份验证的 API 发出 Javascript JSON 请求
- 使用 jquery 将 JSON 发布到控制器,并使用内置验证
- chrome打包应用程序中的JSON架构验证
- 从头开始在NodeJ中编写JSON验证
- 使用AJAX和JSON验证注册表
- 如果JSON不正确,如何验证JSON字符串并返回错误