我是 AJAX 的新手,但能够对 MySQL 数据库中的现有值进行一些表单验证检查。一切正常,除了我的 AJAX 日期验证。它只正确验证一次。如果我刷新页面,它会再次正确验证。我将 new Date().getTime() 分配给 url,因为我认为这可能是缓存问题,但我仍然得到相同的结果。我在同一个表单上对数字和电子邮件使用相同类型的验证,并且它们每次都可以正常工作而无需刷新页面。这是我的测试表格。数据库中的现有日期为 2013 年 10 月 14 日、15 日、16 日和 17 日。数据库中的日期格式为 0000-00-00 或 2013-10-14 现有数字 1、2、3 和 4。现有电子邮件是 you@ me.com 和 me@you.com。如果数据库中存在值,我不希望表单验证。这里'
$(document).ready(function(){
$('#fb-submit-button').attr('disabled','disabled');
var emailok = false;
var numberok = false;
var boxes = $(".fb-item");
var myForm = $("#docContainer"),
number = $("#item3_number_1"),
email = $("#item4_email_1"),
numberInfo = $("#numberInfo"),
emailInfo = $("#emailInfo");
//send ajax request to check email
email.blur(function(){
$.ajax({
type: "POST",
data: "email="+$(this).attr("value"),
url: "../../formcheck_email.php",
beforeSend: function(){
emailInfo.html("<font color='blue'>Checking Email...</font>");
},
success: function(data){
if(data == "invalid")
{
emailok = false;
emailInfo.html("<font color='red'>Invalid Email</font>");
$('#fb-submit-button').attr('disabled','disabled');
}
else if(data != "0")
{
emailok = false;
emailInfo.html("<font color='red'>Email Already Exist</font>");
$('#fb-submit-button').attr('disabled','disabled');
}
else
{
emailok = true;
emailInfo.html("<font color='green'>Email OK</font>");
$('#fb-submit-button').attr('disabled','');
}
}
});
});
//send ajax request to check number
number.blur(function(){
$.ajax({
type: "POST",
data: "number="+$(this).attr("value"),
url: "../../formcheck_number.php",
beforeSend: function(){
numberInfo.html("<font color='blue'>Checking Number...</font>");
},
success: function(data){
if(data != "0")
{
numberok = false;
numberInfo.html("<font color='red'>Number Already Exist</font>");
$('#fb-submit-button').attr('disabled','disabled');
}
else
{
numberok = true;
numberInfo.html("<font color='green'>Number OK</font>");
$('#fb-submit-button').attr('disabled','');
}
}
});
});
//send ajax request to check date
$('#fb-submit-button').attr('disabled', 'disabled');
$('.datepicker').datepicker({
onSelect: function(dateText) {
$("#item61_date_1").datepicker();
post_date = $('.datepicker'),
dateInfo = $('#dateInfo');
//send ajax request to check date
dateInfo.html('<font color="blue">Checking Date...</font>');
$.ajax({
url: '../../formcheck_date.php',
data: {post_date: $(this).val()},
type: 'POST',
success: function(data) {
dateok = (data == '0');
dateInfo.html('<font color="' + (dateok ? 'green' : 'red') + '">Date ' +
(dateok ? 'Available' : 'Already Taken') + '</font>');
$('#fb-submit-button').attr('disabled', dateok ? '' : 'disabled');
}
});
}
});
});
这是我的 php 数据库连接。
<?php
require_once('pdo_connect.php');
$post_date = $_POST['post_date'];
$sql= "SELECT post_date FROM validation where post_date='$post_date'";
$stmt = $pdo->prepare($sql);
$stmt->execute();
$msg = $stmt->rowCount();
if($msg !== false) {
echo $msg;
}
?>