【发布时间】:2015-04-14 20:10:00
【问题描述】:
为什么 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() 函数,你可以看到没有结果。非常感谢您的帮助,因为这花了我几个小时的时间来解决一个愚蠢的 if 条件。
【问题讨论】:
-
如果您将 PHP 作为独立运行,它会表现出相同的行为吗?
-
否 它似乎没有。我刚刚创建了一个 index.php 页面,其中包含简单的 mysqli 对象,然后是我的代码(而不是 incude(db_connect.php) ),它没有在 echo 中添加换行符。
-
你也可以在客户端剪裁,
data.trim()也可以quit usingalert()for troubleshooting.,改用console.log()。 -
试图在客户端上修剪但没有结果。我应该这样做。我不喜欢无缘无故发生的事情。感谢您的帮助
-
我将
checkUserEmail.php替换为exists的文本值,看看是否可以解决问题。如果是这样,您就可以开始重新添加内容了。
标签: javascript php ajax line-breaks