使用Ajax / Jquery提交表单并检查结果?

时间:2019-03-24 09:18:23

标签: php jquery ajax

我想使用ajax提交表单以转到我的页面“ do_signup_check.php”。

它将在数据库中检查用户输入的电子邮件地址,以查看是否存在匹配项。

如果匹配,我希望我的Ajax表单将用户重定向到login.php页面。

如果没有匹配项,我希望它加载我的页面'do_signup.php'

由于某种原因,代码似乎什么也没做。请有人能告诉我我要去哪里哪里吗?

我的Ajax表单:

<html lang="en">
<head>
  <script src="https://www.google.com/recaptcha/api.js" async defer></script>

  <script src="https://www.google.com/recaptcha/api.js?onload=onloadCallback&render=explicit"
        async defer>
  </script>

  <?php include 'assets/config.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('login.php',function(){}).hide().fadeIn(500);
            }
          });
        });
      });
  </script>
</head>
<body>
    <div class="sign_up_contain">

      <div class="container">

        <div class="signup_side">    
          <h3>Get Onboard.</h3>    
          <h6>Join the directory.</h6>

          <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>

        </div>
      </div>   
    </div>
</body>
</html>

我的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';
}
?>

4 个答案:

答案 0 :(得分:0)

在Ajax中获得成功并执行所有必要的逻辑(fadeOut等)后,只需将用户重新定位到login.php:

window.location.href = 'path/to/login.php';

否则,在错误功能(成功功能之后)执行下一个操作:

window.location.href = 'path/to/do_signup.php';

更新: 如果您想从另一个文件中获取一些代码,则可以使用jQuery方法 load

$('#some-selector').load('path/to/course/login.php');

这是一个使用“加载”的非常基本的示例,请谷歌搜索它以进行更多研究。

答案 1 :(得分:0)

尝试使用输入id'submt'触发表单,如下所示:

$("#submt").click(function(){

          e.preventDefault();
          
          //your logic
          
         

答案 2 :(得分:0)

您尚未在页面中包含jquery,该函数还缺少右括号。

在顶部添加jQuery

<select>
    <option *ngFor="let item of subjects | keyvalue" (click)="getSub(item.key)">{{item.value}}</option>
</select>

用以下代码替换您的函数:-

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

答案 3 :(得分:-1)

请尝试使用此代码。

$.ajax({
        type: 'post',
        url: 'do_signup_check.php',
        data:{"name":name,"email":email},
        success: function (result) {
        if(result == 0){ 
           window.location.href = 'do_signup.php';
        }else{
           window.location.href = 'login.php';
        }

      });

我的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 json_encode(array('result'=>'1'));
       exit;    
    }else{    
      echo json_encode(array('result'=>'0'));
      exit;
    }

?>

我希望这对您有用。