PHP将不需要的换行符添加到ajax结果中

时间:2015-04-14 20:10:00

标签: javascript php ajax line-breaks

为什么PHP为我的简单AJAX结果添加换行符?这不容易。我错过了什么吗?

这是我的JS:

$(document).ready(function() {
    $('#inputEmail').change(function(){
        // Check to see if email exists
        var email = $('#inputEmail').val();
        //alert(email);
        $.ajax({
            url : "php/checkUserEmail.php",
            type: "POST",
            dataType: "text",
            data: {email: email},                
            success: function(data){
                alert(data);
                if(data === "exists"){
                    alert(data);                        
                }                    
            },
            error: function (jqXHR, textStatus, errorThrown)
            {
                alert("ajax error");
            }
        });              
    });
});

这是我的php:

<?php 

include_once("db_connect.php");

// Catch results sent via $.post and assigns them to php variables.
$email = $_POST['email'];

// Check to see if email exists
$sql = "SELECT * FROM users WHERE email = '$email'";
$conn->prepare($sql);
$result = $conn->query($sql);
$rowCnt = $result->num_rows;

if($rowCnt == 0){
    echo trim('new');
}else{
    echo trim('exists');
}

无论出于何种原因,我的结果数据字符串作为/ r / nexists返回,而不是仅存在,因此永远不会进入我的if块,即使我只使用==来评估条件。我尝试添加trim()函数,你可以看到没有结果。非常感谢您的帮助,因为这需要花费我几个小时的时间来处理愚蠢的情况。

2 个答案:

答案 0 :(得分:1)

检查php问号之后或之前是否存在“空”空格,这些换行符也表示为响应的一部分。

I mean here
<?php?>
And here

答案 1 :(得分:0)

我找到了一个解决方案,但我仍然不喜欢或不了解正在发生的事情。您应该能够为结果返回一个简单的字符串。无论如何,我所做的只是回显从DB返回到我的ajax成功函数的行数。然后我检查结果是否是&gt; 0在客户端上,我终于在我的IF块中。这是我做的:

JS:

$(document).ready(function() {
    $('#inputEmail').change(function(){
        // Check to see if email exists
        var email = $('#inputEmail').val();
        //alert(email);
        $.ajax({
            url : "php/checkUserEmail.php",
            type: "POST",
            dataType: "text",
            data: {email: email},                
            success: function(data){                    
                console.log(data);
                if(data > 0){
                    console.log("HURRAY!  I'm in my IF");   
                }                    
            },
            error: function (jqXHR, textStatus, errorThrown)
            {
                alert("ajax error");
            }
        });              
    });
});

这是PHP:     

    // Catch results sent via $.post and assigns them to php variables.
    $email = $_POST['email'];

    // Check to see if email exists
    $sql = "SELECT * FROM users WHERE email = '$email'";
    $conn->prepare($sql);
    $result = $conn->query($sql);
    $rowCnt = $result->num_rows;

    echo $rowCnt;
?>

这很有效,实际上可能更加优雅,但你应该能够毫无问题地返回一个字符串。

约翰