繁体   English   中英

Ajax 验证在 html 元素内重复 html 页面

[英]Ajax validation duplicates html page inside html element

My PHP username validation with Ajax duplicates my html page inside of html div(this is for showing ajax error) element. 我尝试了一些解决方案并用谷歌搜索,但找不到其他解决方案。 也许问题出在 $_POST 但我也在 php (所有输入验证)中将它们分开。

这是 PHP 代码

<?php 

if(isset($_POST['username'])){
    //username validation
    $username = $_POST['username'];

    if (! $user->isValidUsername($username)){
        $infoun[] = 'Your username has at least 6 alphanumeric characters';
    } else {
        $stmt = $db->prepare('SELECT username FROM members WHERE username = :username');
        $stmt->execute(array(':username' => $username));
        $row = $stmt->fetch(PDO::FETCH_ASSOC);

        if (! empty($row['username'])){
            $errorun[] = 'This username is already in use';
        }
    }
}


if(isset($_POST['fullname'])){
    //fullname validation
    $fullname = $_POST['fullname'];

    if (! $user->isValidFullname($fullname)){
        $infofn[] = 'Your name must be alphabetical characters';
    }   
}

if(isset($_POST['password'])){
    if (strlen($_POST['password']) < 6){
        $warningpw[] = 'Your password must be at least 6 characters long';
    }   
}

if(isset($_POST['email'])){
    //email validation
    $email = htmlspecialchars_decode($_POST['email'], ENT_QUOTES);
    if (! filter_var($email, FILTER_VALIDATE_EMAIL)){
        $warningm[] = 'Please enter a valid email address';
    } else {
        $stmt = $db->prepare('SELECT email FROM members WHERE email = :email');
        $stmt->execute(array(':email' => $email));
        $row = $stmt->fetch(PDO::FETCH_ASSOC);

        if (! empty($row['email'])){
            $errorm[] = 'This email is already in use';
        }
    }
}

?>

这是 Javascript

<script type="text/javascript">
    $(document).ready(function(){
        
        $("#username").keyup(function(event){
        event.preventDefault();
        var username = $(this).val().trim();
        if(username.length >= 3){
            $.ajax({
                url: 'register.php',
                type: 'post',
                data: {username:username},
                success: function(response){
                // Show response
                $("#uname_response").html(response);
                }
            });
        }else{
            $("#uname_response").html("");
        }

        });     

    });
</script>

<input type="text" name="username" id="username" class="form-control form-control-user" placeholder="Kullanıcı Adınız" value="<?php if(isset($error)){ echo htmlspecialchars($_POST['username'], ENT_QUOTES); } ?>" tabindex="2" required>

<div id="uname_response" ></div>

这是屏幕截图:

形成重复截图

PHP 文件中的唯一代码应该在<?php?>标记内。 您需要将 PHP 代码分离到另一个文件中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM