簡體   English   中英

AJAX無法從PHP讀取回顯數據?

[英]AJAX cannot read echo data from PHP?

我一直在測試我的寄存器,並且在某種程度上可以工作。 但是它似乎無法比較PHP腳本中的文本。

我嘗試使用現有的電子郵件和用戶名,現有的電子郵件,現有的用戶名和兩個不存在的用戶名和電子郵件。 但是所有這些都會給我回顯的數據+ Fail(這是JQuery中的結束條件語句)。

JQuery的:

$( function ajaxRegCheck() {
    $('#reg_form').submit(function(e) {
        e.preventDefault();
        $.ajax({
            type: "POST",
            url: 'save_register.php',
            data: $(this).serialize(),
            success: function(data)
            {

                if(data == "un_em_exists"){
                    alert(data+" Username and Email exists.");
                } else if(data == "un_exists") {
                    alert(data+" Username exists.");
                } else if(data == "em_exists") {
                    alert(data+" Email exists.");
                } else if(data == "success"){
                    alert(data+" Created account.");
                } else {
                    alert(data+ " Fail.");
                }
            } 
        });
    });
});

PHP注冊:

if(($exist_check_user->rowCount() > 0) AND ($exist_check_em->rowCount() > 0)){
    echo "un_em_exists";
} else if($exist_check_user->rowCount() > 0) {
    echo "un_exists";
} else if($exist_check_em->rowCount() > 0) {
    echo "em_exists";
} else {
    $sql = "INSERT INTO Users (username, email, password) VALUES (:r_un, :r_em, :r_pw)";
    $q = $cdb->prepare($sql);
    $q->execute(array(':r_un'=>$reg_username,':r_em'=>$reg_email,':r_pw'=>$reg_pw));
    echo "success";
}

我不理解為什么它會跳過JQuery中的if語句並直接轉到最后的else條件。 顯然,它可以正確地從PHP端輸出字符串,但是似乎無法比較該字符串?

例如,如果我使用現有的用戶名和電子郵件注冊,它將回顯“ un_em_exists”響應。 在JQuery上,警報與其匹配,因為它說的是“ un_em_exists Fail。”,這是最后一條語句。

更新:

找到了問題,但不太確定如何解決。 我測試了字符串長度,作為回報,我得到了字符串長度16(從JQuery端進行測試),在PHP上,我得到了12-這是“ un_em_exists”的正確值。

我不知道這4個額外的金額是多少。

成功使用data.trim()整理數據后,可能會有空白

確保返回的值是這樣的文本:

$( function ajaxRegCheck() {
    $('#reg_form').submit(function(e) {
        e.preventDefault();
        $.ajax({
            dataType: 'text',
            type: "POST",
            url: 'save_register.php',
            data: $(this).serialize(),
            success: function(data)
            {

                if(data == "un_em_exists"){
                    alert(data+" Username and Email exists.");
                } else if(data == "un_exists") {
                    alert(data+" Username exists.");
                } else if(data == "em_exists") {
                    alert(data+" Email exists.");
                } else if(data == "success"){
                    alert(data+" Created account.");
                } else {
                    alert(data+ " Fail.");
                }
            } 
        });
    });
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM