-1

我遇到的问题是一个简单的 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 代码中“修剪”。所以我宁愿让php返回已经修剪过的字符串“success”。但是将内容更改为您在下面看到的内容并没有像我预期的那样工作,并且在 ajax 中运行失败函数..?

修改后的 php :

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

修正的阿贾克斯:

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

为什么在 php 中进行修整而不是让我失望的 ajax..?

4

3 回答 3

1

试试这个......在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
}
于 2012-04-27T08:17:35.497 回答
0

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

通常,问题在于 Unicode BOM 标记(查找并在编辑器中打开您的 PHP 文件,以显示它们是否存在)或 PHP 文件末尾的换行符(删除这些)。

于 2012-04-27T08:16:32.157 回答
0

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

在这里查看

于 2012-04-27T08:16:52.623 回答