在php验证后使用javascript / jquery提交表单

时间:2014-07-12 21:00:23

标签: php jquery

有人可以帮我解决这个问题。 在检查数据库是否包含插入的电子邮件后,我必须提交表单。

电子邮件控制的PHP代码

$email = $_POST['email'];

$sql = "SELECT * FROM sc_user WHERE email='" . $email . "'";
$select = mysql_query($sql);
$row = mysql_num_rows($select);
$conn_object->connection_signout();

if($row > 0)
  echo "exist";
 else
  echo "notexist";

用于在数据库中插入新用户的PHP代码

if (isset($_POST['submit_registration']))
  {
  $sql = "INSERT INTO sc_user (name, surname, email, password) VALUES ('" . $_POST['user_name'] . "',
     '" . $_POST['user_surname'] . "', '" . $_POST['email'] . "', '" . md5($_POST['password']) . "')";
if (mysql_query($sql))
    {
    $conn_object->connection_signout();
    }
header("Location: index.php");
}

我的部分JavaScript代码就是这个。

$(document).ready(function(){
  $("#register_form").submit(function(evReg) {
    evReg.preventDefault();

//other code...

$.post('../PHP/checkMail.php', {'email' : email}, function(data) {
    if(data == 'exist') 
      {
      $('#email_id').val('');
      $('#email_id').attr('placeholder', 'User already registered with this email');
      $('#email_id').addClass('placeholder_red');
      $('#email_id').focus();
      }
    else 
      {
      $(this).submit();
      }
  });
//this.submit();
//other code

如果我把" this.submit();"在外面" $。发布(...);"阻止表单将提交corectly,但如果在其中,我认为它没有找到表单,我认为。
对不起英语,我希望你能理解我的问题。

我已尝试使用此

document.getElementById("register_form").submit();

但它不起作用。我希望我能把你提供的所有信息都告诉你。

1 个答案:

答案 0 :(得分:0)

它不起作用,因为你在$ .post()的回调函数范围内,所以$(this)没有正确引用你的表单,你可以尝试更改你的代码:

$("#register_form").submit(function(evReg) {
     evReg.preventDefault();
     var $this = $(this);
    //other code

然后在回调函数中使用$ this变量提交表单

if(data == 'exist') 
  {
  $('#email_id').val('');
  $('#email_id').attr('placeholder', 'User already registered with this email');
  $('#email_id').addClass('placeholder_red');
  $('#email_id').focus();
  }
else 
  {
  $this.submit();
  }

我还没有测试过你的代码,所以我无法确定它是否有效,但不同的时间对我有用。