使用Ajax和PHP检查数据库中的现有用户 - php

我遇到了一个问题,即代码不断显示用户名可用,即使该用户名已存在于数据库中。谁能解决我遇到的问题?下面是我的代码。

的PHP

    // Define $username
    $username=$_POST["emailAddress"];

    // Create Connection
    $db = new mysqli($server, $user, $password, $database);

    // Check Connection
    if ($db->connect_error) {
        die("Connection failed: " . $db->connect_error);
    }

    // SQL query to fetch registerd users and finds user match.
    $query = "SELECT email_address FROM users WHERE email_address='$username'";

    $result = mysqli_query($db,$query);    
    $rows = mysqli_num_rows($result);

    //if number of rows fields is bigger them 0 that means it's NOT available '  
    if($rows>0){  
    //and we send 0 to the ajax request  
        echo 0;  
    }else{  
    //else if it's not bigger then 0, then it's available '  
    //and we send 1 to the ajax request  
        echo 1;  
    }  
    mysqli_close($db); // Closing Connection

jQuery的

$(document).ready(function () {

//when button is clicked  
$('[name="checkAvail"]').on("click", function () {
    check_availability();
});

});

//function to check username availability  
function check_availability() {

//get the username  
var username = $('[name="emailAddress"]').val();

//use ajax to run the check  
$.post("checkusers.php",
    function (result) {
        //if the result is 1  
        if (result == 1) {
            //show that the username is available  
            $('.existingUser').html(username + ' is Available');
        } else {
            //show that the username is NOT available  
            $('.existingUser').html(username + ' is NOT Available');
        }
    });

}

的HTML

         <div class="form-group">
        <button class="btn btn-default" name="checkAvail">Check Availability</button>
        <label for="emailAddress" class="col-sm-5 control-label">Email:</label>
        <div class="col-sm-4">
            <input type="email" class="form-control" id="emailAddress" name="emailAddress" placeholder="Email" autocomplete="off">
        </div>
    </div>

参考方案

您的ajax没有发送任何数据...因此$_POST["emailAddress"];在您的php中将为空

您需要添加一个数据对象作为$.post的第二个参数

$.post("checkusers.php",{emailAddress : username },function (result) {
     // success handing code left out for clarity
});

另外,您应在允许用户检查输入内容之前检查输入是否为空。向服务器发送无效的空值毫无意义。

您可以使用许多简单的javascript验证插件。

同样,在服务器上应该验证用户输入。这是验证的最重要点,因为可以解决javascript问题,以允许发送任何内容

PHP:将数组值加在一起 - php

我相信这比标题听起来要难一些,但我可能完全错了。我有一个像这样的数组:[["londrina",15],["cascavel",34],["londrina",23],['tiradentes',34],['tiradentes',21]] 我希望能够采用通用…

PHP JQuery复选框 - php

我有以下片段。 var myData = { video: $("input[name='video[]']:checked").serialize(), sinopse: $("#sinopse").val(), dia: $("#dia").val(), quem: $(&#…

PHP:获取调用引用的数组名称 - php

假定以下函数并调用:function doSomething( &$someArray ) { // Do something to $someArray } $names=array("John", "Paul", "George", "Ringo"); doSomet…

如何从php中获取datatables jQuery插件的json数据 - php

我是PHP的新手,正在尝试使用Datatables jQuery插件。我知道我必须从.php文件中获取数据,然后在数据表中使用它,但是我似乎无法通过ajax将其传递给数据表。我设法从数据库中获取数据,并对其进行json编码,但是后来我不知道如何在我的index.php文件中调用它,并在其中显示它。我究竟做错了什么?这是我的代码:HTML(已编辑): <…

PHP-MySQL结果转换为JSON - php

我试图了解如何将MySQL结果转换为JSON格式,以便以后可以在Javascript中使用此JSON来构建HTML表。但是我的代码只是产生大量的空值,我还不明白为什么。$result = mysqli_query($con, "SELECT * FROM Customers"); $test = json_encode($result);…