PHP在ajax提交上显示错误消息

时间:2014-11-21 22:20:51

标签: php ajax forms validation

我是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 
}
    }

2 个答案:

答案 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";
}