Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用preventDefault后,我如何;“重新允许”;数据发送到数据库后,是否使用“提交”按钮加载页面?_Php_Jquery_Mysql_Ajax - Fatal编程技术网

Php 使用preventDefault后,我如何;“重新允许”;数据发送到数据库后,是否使用“提交”按钮加载页面?

Php 使用preventDefault后,我如何;“重新允许”;数据发送到数据库后,是否使用“提交”按钮加载页面?,php,jquery,mysql,ajax,Php,Jquery,Mysql,Ajax,也许我完全错了,但我的目标是使用jQuery、AJAX和PHP来验证我的注册表单。我目前已将其设置为: 用户在表单中输入数据 如果任何数据不正确,将使用AJAX在表单下方显示一条错误消息 如果表单正确提交,数据将发送到数据库 几乎所有的事情似乎都很有效,但问题是如果表格填写正确,我会打电话给你 header("Location: ../index.php”); 然后它将我的索引页面加载到注册页面的顶部,因为默认情况下,提交按钮不允许用户进入新页面。这就像我在一个浏览器窗口中有两个网页在另一个上

也许我完全错了,但我的目标是使用jQuery、AJAX和PHP来验证我的注册表单。我目前已将其设置为:

  • 用户在表单中输入数据
  • 如果任何数据不正确,将使用AJAX在表单下方显示一条错误消息
  • 如果表单正确提交,数据将发送到数据库
  • 几乎所有的事情似乎都很有效,但问题是如果表格填写正确,我会打电话给你

    header("Location: ../index.php”);
    
    然后它将我的索引页面加载到注册页面的顶部,因为默认情况下,提交按钮不允许用户进入新页面。这就像我在一个浏览器窗口中有两个网页在另一个上面一样。如果表格填写正确,我是否可以“重新允许”提交按钮正常工作

    HTML:

    
    登记帐户
    

    jQuery:

    /// <reference path="jquery-3.3.1.min.js" />
    
    $(document).ready(function() {
    
        $("form").submit(function(event) {
    
            event.preventDefault();
    
            var username = $("#register-username").val();
            var email = $("#register-email").val();
            var password = $("#register-password").val();
            var confirmPassword = $("#register-confirm-password").val();
            var submit = $("#register-submit").val();
    
            $(".form-message").load("../shared/_registerAccount.php", {
    
                username: username,
                email: email,
                password: password,
                confirmPassword: confirmPassword,
                submit: submit
    
              });
         });
    });
    
    //
    $(文档).ready(函数(){
    $(“表格”)。提交(功能(事件){
    event.preventDefault();
    var username=$(“#注册用户名”).val();
    var email=$(“#注册电子邮件”).val();
    var password=$(“#注册密码”).val();
    var confirmPassword=$(“#注册确认密码”).val();
    var submit=$(“#注册提交”).val();
    $(“.form message”).load(“../shared/_registerAccount.php”{
    用户名:用户名,
    电邮:电邮,,
    密码:密码,
    confirmPassword:confirmPassword,
    提交:提交
    });
    });
    });
    
    PHP:


    当您只想刷新页面时,代码的需求是什么?只需执行
    window.location.reload()
    当您收到响应时我对web开发太陌生了,不知道答案可能简单到不需要代码。
    /// <reference path="jquery-3.3.1.min.js" />
    
    $(document).ready(function() {
    
        $("form").submit(function(event) {
    
            event.preventDefault();
    
            var username = $("#register-username").val();
            var email = $("#register-email").val();
            var password = $("#register-password").val();
            var confirmPassword = $("#register-confirm-password").val();
            var submit = $("#register-submit").val();
    
            $(".form-message").load("../shared/_registerAccount.php", {
    
                username: username,
                email: email,
                password: password,
                confirmPassword: confirmPassword,
                submit: submit
    
              });
         });
    });
    
    <?php
    
    if (isset($_POST['submit']))
    {
        include_once "_databaseHandler.php";
    
        $username = mysqli_real_escape_string($connection, $_POST['username']);
        $email = mysqli_real_escape_string($connection, $_POST['email']);
        $password = mysqli_real_escape_string($connection, $_POST['password']);
        $confirmPassword = mysqli_real_escape_string($connection, 
            $_POST['confirmPassword']);
    
        $errorEmpty = false;
    
        //Check for empty fields
        if (empty($username) || empty($email) || empty($password) || 
               empty($confirmPassword))
        {
            echo "<span class='form-error'>Please fill in all fields</span>";
            $errorEmpty = true;
        }
    
        else
        {
            $sqlUsername = "SELECT * FROM userinfo WHERE userName = '$username'";
            $resultUsername = mysqli_query($connection, $sqlUsername);
            $resultCheckUsername = mysqli_num_rows($resultUsername);
    
            $sqlEmail = "SELECT * FROM userinfo WHERE userEmail = '$email'";
            $resultEmail = mysqli_query($connection, $sqlEmail);
            $resultCheckEmail = mysqli_num_rows($resultEmail);
    
            //Check if username is taken
            if ($resultCheckUsername > 0)
            {
                echo "<span class='form-error'>This username is already 
                    taken</span>";
                $errorEmpty = true;
            }
    
            //Check if username has invalid characters
            else if (preg_match("/^[0-9a-zA-Z]$/", $username))
            {
                echo "<span class='form-error'>This username contains invalid 
                    characters</span>";
                $errorEmpty = true;
            }
    
            //Check if email is valid
            else if ($resultCheckEmail > 0)
            {
                echo "<span class='form-error'>This email is already in 
                    use</span>";
                $errorEmpty = true;
            }
    
            //Check if email is already in use
            else if (!filter_var($email, FILTER_VALIDATE_EMAIL))
            {
                echo "<span class='form-error'>Please enter a valid email 
                    address</span>";
                $errorEmpty = true;
            }
    
            //Check if passwords match
            else if ($_POST['password'] != $_POST['confirmPassword'])
            {
                echo "<span class='form-error'>Passwords do not match</span>";
                $errorEmpty = true;
            }
    
            //Insert the user into the database
            else
            {
                $sql = "INSERT INTO userinfo (userName, userEmail, userPassword) 
                    VALUES (?, ?, ?);";
    
                $statement = mysqli_stmt_init($connection);
    
                if (!mysqli_stmt_prepare($statement, $sql))
                {
                    echo "<span>Database error</span>";
    
                    header("Location: ../index.php");
                    exit();
                }
    
                else
                {
                    $hashedPassword = password_hash($password, PASSWORD_DEFAULT);
    
                    mysqli_stmt_bind_param($statement, "sss", $username, $email, 
                        $hashedPassword);
    
                    mysqli_stmt_execute($statement);
    
                    header("Location: ../index.php?signup=success");
                    exit();
                }
            }
        }
    }
    
    else
    {
        header('Location: ../index.php');
        exit();
    }
    
    ?>
    
    <script>
    
        $("#username, #email, #password, #confirmPassword").removeClass(".input- 
            error").removeClass(".input-error");
    
        var errorEmpty = "<?php echo $errorEmpty; ?>";
    
        if (errorEmpty)
        {
            $("#username, #email, #password, #confirmPassword").addClass(".input- 
                error");
        }
    
        if (!errorEmpty)
        {
            $("#username, #email, #password, #confirmPassword").val("");
        }
    
    </script>