使用ajax提交表单:正在工作,现在不工作?

时间:2019-03-27 13:07:59

标签: php ajax

我在signup.php中具有以下HTML表单:

<form id="signup" action="" method="POST" autocomplete="off" autocomplete="false">
     <div class="signup_row action">
     <input type="text" placeholder="What's your Name?" name="name" id="name" class="signup" autocomplete="new-password" autocomplete="off" autocomplete="false" required />
     <input type="text" placeholder="Got an Email?" name="email" id="email" class="signup" autocomplete="new-password" autocomplete="off" autocomplete="false" required />
     <div class="g-recaptcha" style="margin-top:30px;" data-sitekey="6LeCkZkUAAAAAOeokX86JWQxuS6E7jWHEC61tS9T"></div>
     <input type="submit" class="signup_bt" name="submit" id="submt" value="Create My Account">
     </div> 
 </form>

我正在尝试使用ajax提交表单,而无需刷新页面:

<!-- include files -->
<?php include 'assets/config.php';?>
<?php if(isset($_SESSION["CUSTOMER_ID"])){
header('Location: myaccount.php'); } ?>  


    <script>
      $(function () {

        $('form').on('submit', function (e) {      

          e.preventDefault();

          $.ajax({
            type: 'post',
            url: 'do_signup_check.php',
            data:{"name":name,"email":email},
            success: function () {
            if(result == 0){    
                $('.signup_side').fadeOut(500).promise().done(function() {
                $('.signup_side').load('do_signup.php',function(){}).hide().fadeIn(500);
            });
            }else{
                $('.signup_side').fadeOut(500).promise().done(function() {
                $('.signup_side').load('assets/login.php',function(){}).hide().fadeIn(500);
            }         
          });
        });
      });
    </script>

我将表单发布到do_signup_check.php并运行查询以查看用户是否已经注册。回声1表示肯定结果,回声0表示否定结果:

Do_Signup_Check.php:

<?php
    session_start();        
    require 'assets/connect.php';


    $myName=$_POST["name"];
    $myEmail=$_POST["email"];

    $check = mysqli_query($conn, "SELECT * FROM user_verification WHERE email='".$myEmail."'");

    if (!$check) {
    die('Error: ' . mysqli_error($conn)); }

    if(mysqli_num_rows($check) > 0){
        echo '1';
    }else{  
        echo '0';
    }

?>

如果结果为0,那么ajax应该加载我的页面do_signup.php。 但是可惜的是,这还没有实现。它可以正常工作,然后我关闭计算机,然后又重新回到计算机上,现在它将无法正常工作。

请有人能告诉我我哪里出问题了吗?

1 个答案:

答案 0 :(得分:1)

if(result == 0){此处结果未使用成功函数:

您必须在此处传递结果变量:

success: function () {

为:

success: function (result) {

现在,您可以使用条件if(result == 0){

第二,我建议您在ajax请求中传递dataType: 'html'

编辑:

您在代码中使用<?php if(isset($_SESSION["CUSTOMER_ID"])){行,如果您在代码中未使用session_start(),则此检查将不起作用。

对于这一行data:{"name":name,"email":email},,我没有在代码中看到nameemail,在这里定义了要在ajax参数中使用的这两个变量。