2014-11-21 205 views
0

我是php初学者。我正在使用ajax调用提交表单。因此,在提交表单用户留在同一页面之后,不要从ajax调用去reserve_seat.php。PHP显示ajax提交错误消息

<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

根据成功或失败,您的ajax调用reserve_seat.php返回什么?你需要先回到那里,然后在你的成功回调中,你可以执行一个动作,显示带有错误信息的div等。 – pmahomme 2014-11-21 22:24:39

+2

请使用预准备语句,你的命令正在遭受sql注入:http:// en.wikipedia.org/wiki/SQL_injection。这意味着某人可以在你的sql server中执行任意命令。 – 2014-11-21 22:27:03

回答

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"; 
} 
+0

我该如何回复错误信息? html代码是在index.php文件 – asdfkjasdfjk 2014-11-21 22:33:04

+0

只是尝试它的方式。在你当前的代码中,你没有从ajax接受回应。 – 2014-11-21 22:35:06

1

$阿贾克斯将获得它的成功方法的响应:

<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"; 
    } 
} 
+0

这对我很有帮助,非常感谢 – humphrey 2015-08-11 10:27:57