我是php初学者。我正在使用ajax调用提交表单。因此,在提交表单后,用户停留在同一页面上,并且自ajax调用后不要去reserve_seat.php。
<form action="reserve_seat.php" method="POST">
First name:<br>
<input type="text" name="name" value="Mickey">
<br>
Email:<br>
<input type="text" name="email" value="Mouse">
<br><br>
<input type="submit" value="Submit">
</form>
<script>
$(function () {
$('form').on('submit', function (e) {
e.preventDefault();
$.ajax({
type: 'post',
url: 'reserve_seat.php',
data: $('form').serialize(),
success: function () {
alert('form was submitted');
}
});
});
});
</script>
现在提交表单后,我对电子邮件进行了一些验证,如果电子邮件验证失败,我想在表单上方显示错误消息。可能会插入显示该电子邮件无效的div。我怎样才能做到这一点?我的验证码在下面
if( !empty($_POST['name']) && !empty($_POST['email'])){
$name = $_POST['name'];
$email = $_POST['email'];
if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
$insert = 'INSERT into reservation(name,email) VALUES ("'.$name.'", "'.$email.'")';
mysql_query($insert);
} else {
//need help here to show error message
}
}
答案 0 :(得分:1)
$ .ajax将在其成功方法中获得响应:
<script>
$(function () {
$('form').on('submit', function (e) {
e.preventDefault();
$.ajax({
type: 'post',
url: 'reserve_seat.php',
data: $('form').serialize(),
success: function (data) {
alert(data); // Alerts server response
}
});
});
});
</script>
您只需要实际发送响应服务器端,您只需使用PHP回显消息:
if( !empty($_POST['name']) && !empty($_POST['email'])){
$name = $_POST['name'];
$email = $_POST['email'];
if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
$insert = 'INSERT into reservation(name,email) VALUES ("'.$name.'", "'.$email.'")';
mysql_query($insert);
} else {
echo "This message will be available in success method";
}
}
答案 1 :(得分:0)
<强> HTML 强>
<span id='error_message'></span>
在你的ajax成功中:
success: function (res) {
$('#error_message').text('');
$('#error_message').text(res);
}
PHP(reserve_seat.php)
echo
错误消息,基于您的要求/条件。
在你的情况下,
if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
$insert = 'INSERT into reservation(name,email) VALUES ("'.$name.'", "'.$email.'")';
mysql_query($insert);
} else {
echo "Invalid Email";
}