修剪ajax的php回声

时间:2012-04-27 08:11:27

标签: php ajax

我遇到的问题是使用简单的ajax邮件脚本。

我这样做得很好:

php片段:

if(mail($to,$subject,$message,$headers)){
echo "success";
}

回到这里处理的ajax代码:

         if($.trim(data) == "success"){
           // do the success stuff
         }else{
           // doo the fail stuff
         }

我担心的是,在jquery代码中,所有版本的资源管理器都不支持“trim”。 所以我宁愿让php返回字符串“success”已经修剪过。 但是改变你看到的内容并不像我预期的那样工作,并在ajax中运行失败功能..?

修改php:

if(mail($to,$subject,$message,$headers)){
$success = trim("success");
echo $success;
}

修改Ajax:

     if(data == "success"){
         // do success stuff does not happen anymore
     }else{
         // now it always does fail stuff, so comparison is always false
     }

为什么要在php中修剪而不是让我失望的ajax ...?

3 个答案:

答案 0 :(得分:0)

您的问题不在于字符串“success”。修剪只是从字符串的开头和结尾删除空格和白字符(换行符等)。并且在“成功”中没有这样的东西,所以它什么也没做。但是,如果在JavaScript端修改 ,则PHP必须生成一些空格字符,因此它会出现在响应中。但这不是你发布的代码,工作“成功”没有问题。您必须浏览代码并找到换行符/空格/白色字符的来源。

通常,问题在于使用Unicode BOM标记(在编辑器中查找和打开PHP文件,可以显示它们是否存在)或PHP文件末尾的换行符(删除它们)。 / p>

答案 1 :(得分:0)

如果使用jquery.ajax,则可以指定成功/完成/失败回调函数。您的jquery调用可以是执行邮件功能的函数,然后返回true或false。然后,您可以检查成功函数中的返回值。

check it out here

答案 2 :(得分:0)

试试吧...... 在ajax

$('#err_register').html("Data:"+data+"Display");
var resultData=jQuery.trim(data);

if(resultData == "success"){
         // do success stuff does not happen anymore
}else{
         // now it always does fail stuff, so comparison is always false
}