为什么注册表格中的ajax获胜';我不懂php

为什么注册表格中的ajax获胜';我不懂php,php,jquery,ajax,Php,Jquery,Ajax,我对ajax注册表有异议。我尝试了很多选择,但我找不到哪里出了错。问题在于电子邮件。如果存在电子邮件,Ajax将无法读取(检查email.php)。其他一切都可以。我用了test@ok.com来测试它 table `users` | id | email | | 1 | test@ok.com | HTML <script src="https://static.zrcdn.net/js/fw/jquery/1.7.2/jquery-1.7.2.min.js">&l

我对ajax注册表有异议。我尝试了很多选择,但我找不到哪里出了错。问题在于电子邮件。如果存在电子邮件,Ajax将无法读取(
检查email.php
)。其他一切都可以。我用了
test@ok.com
来测试它

table `users`

| id | email       |
|  1 | test@ok.com |
HTML

<script src="https://static.zrcdn.net/js/fw/jquery/1.7.2/jquery-1.7.2.min.js"></script>
<script>
  function checkStepOne() {
    jQuery("#owner_email").parents("li").find("label.error").hide();
    jQuery("#owner_password").parents("li").find("label.error").hide();
    jQuery("#owner_email").parents("li").find("span.check-1-r").removeClass('chkValid');
    jQuery("#owner_password").parents("li").find("span.check-2-r").removeClass('chkValid');

    var owner_email = jQuery("#owner_email").val();
    var owner_password = jQuery("#owner_password").val();

    var chkemail = 1;
    var chkpass = 1;
    var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;

    $.ajax({
      type: "POST",
      url: "check-email.php",
      data: {
        owner_email,
      },
      success: function(responseEmail) {
        if (responseEmail == 0) {
          jQuery("#owner_email").parents("li").find("#e_exist").show();
          chkemail = 0;
        } else {
          chkemail = 1;
        }
      }
    });

    if (owner_email == "" || reg.test(owner_email) == false) {
      chkemail = 0;
    }

    if (chkemail == 1) {
      jQuery("#owner_email").parents("li").find("span.check-1-r").addClass('chkValid');
    } else {
      jQuery("#owner_email").parents("li").find("#e_avaib").show();
    }

    if (owner_password.length < 5 || owner_password == "") {
      chkpass = 0;
    }

    if (chkpass == 1) {
      jQuery("#owner_password").parents("li").find("span.check-2-r").addClass('chkValid');
    } else {
      jQuery("#owner_password").parents("li").find("label.error").show();
    }

    if (chkpass == 1 && chkemail == 1) {
      jQuery(".step-1").hide();
      jQuery(".step-2").addClass('chkValid').show();
    }
    return false;
  }
</script>


<form method="post" id="frmEmailSignup" onsubmit="return submitResform();">
  <ul>
    <li>
      <label class="side-label" for="owner[email]">Email</label>
      <input type="email" class="email required" id="owner_email" name="owner[email]" placeholder="Email" tabindex="0" onkeyup="return forceLower(this);" style="margin-bottom: 6px;"/>
      <label class="error" id="e_exist" style="margin-top: -9px;">Email exist.</label>
      <label class="error" id="e_avaib" style="margin-top: -9px;">Wrong email.</label>
      <span class="check-1-r"></span>
    </li>
    <li class="password-row">
      <label class="side-label" for="owner[password]">Password</label>
      <input type="password" class="password required" id="owner_password" name="owner[password]" placeholder="Password" tabindex="0"/>
      <label class="error">Wrong password.</label>
      <span class="check-2-r"></span>
    </li>
    <li class="full">
      <button type="button" class="button cta btn-disabled next next-one" tabindex="0" data-plan="register" onclick="checkStepOne();">Sign up</button>
    </li>
  </ul>
</form>

函数checkStepOne(){
jQuery(“#owner_email”).parents(“li”).find(“label.error”).hide();
jQuery(“#owner_password”).parents(“li”).find(“label.error”).hide();
jQuery(“所有者电子邮件”).parents(“li”).find(“span.check-1-r”).removeClass(“chkValid”);
jQuery(“#owner_password”).parents(“li”).find(“span.check-2-r”).removeClass(“chkValid”);
var owner_email=jQuery(“#owner_email”).val();
var owner_password=jQuery(“#owner_password”).val();
var chkemail=1;
var chkpass=1;
变量reg=/^([A-Za-z0-9\-\.])+\@([A-Za-z0-9\-\.])+\.([A-Za-z]{2,4})$/;
$.ajax({
类型:“POST”,
url:“检查email.php”,
数据:{
业主(电邮),
},
成功:功能(响应邮件){
if(responseEmail==0){
jQuery(“#所有者电子邮件”).parents(“li”).find(#e#u exist”).show();
chkemail=0;
}否则{
chkemail=1;
}
}
});
如果(所有者电子邮件==“”| |注册测试(所有者电子邮件==假){
chkemail=0;
}
如果(chkemail==1){
jQuery(“所有者电子邮件”).parents(“li”).find(“span.check-1-r”).addClass(“chkValid”);
}否则{
jQuery(“所有者电子邮件”).parents(“li”).find(“#e#u avib”).show();
}
if(owner_password.length<5 | | owner_password==“”){
chkpass=0;
}
如果(chkpass==1){
jQuery(“所有者密码”).parents(“li”).find(“span.check-2-r”).addClass(“chkValid”);
}否则{
jQuery(“#owner_password”).parents(“li”).find(“label.error”).show();
}
如果(chkpass==1&&chkemail==1){
jQuery(“.step-1”).hide();
jQuery(“.step-2”).addClass('chkValid').show();
}
返回false;
}
  • 电子邮件 电子邮件存在。 错误的电子邮件。
  • 密码 密码错误。
  • 注册
检查email.php

<?php
$email = $_POST['owner[email]'];
$query = mysql_query("SELECT email FROM users WHERE email = '$email'");
if (mysql_num_rows($query) == 1) {
  echo '0';
} else {
  echo '1';
}
?>

您应该将数据作为

data: {
    owner_email: owner_email
}
在PHP中,将其作为

$_POST['owner_email']

在ajax中传递数据是错误的。你用过这个

数据:{owner_email}

应该是这样的

数据:{email:owner_email}

在check-email.php文件中获得如下电子邮件


$email=$_POST['email']

因为您正在传递所有者的电子邮件并检查所有者的[email]
$\u POST['owner[email]'
从未设置,应该是
$\u POST['owner\u email']
另外请注意
mysql.*
函数不推荐使用。使用
mysqli
PDO
instead@kerbholz是的,谢谢!你说得对。谢谢