【发布时间】:2015-09-13 08:49:18
【问题描述】:
我看过类似的问题,但似乎没有一个回答我正在寻找的东西。 验证脚本无法识别输入字段 - 会话未通过。
代码如下:
var data = {};
$(document).ready(function() {
$('input[type="submit"]').on('click', function() {
resetErrors();
var url = 'process.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();
}
html表单:
<form action="process.php" method="post" >
<label>First Name</label>
<input name="first_name" type="text" />
<label>Email</label>
<input name="email" type="text" />
<input type="submit" value="Submit" />
</form>
session_start() at top of page.
Process.php 代码:
session_start();
if(isset($_POST)){
if (empty($_POST['first_name'])) {
$_SESSION['errors']['first_name'] = 'name is missing';
}
if (empty($_POST['email'])) {
$_SESSION['errors']['email'] = 'mail is missing';
}
if(count($_SESSION['errors']) > 0){
//This is for ajax requests:
if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
echo json_encode($_SESSION['errors']);
exit;
}
//This is when Javascript is turned off:
echo '<ul>';
foreach($_SESSION['errors'] as $key => $value){
echo '<li>' . $value . '</li>';
}
echo '</ul>';exit;
}else{
//form validation successful - process data here!!!!
}
}
我是 AJAX 新手(如您所见),因此非常感谢任何帮助。
【问题讨论】:
标签: javascript php validation session-variables