我很难尝试做一些简单的事情。这是代码:
if(data == 'success') { alert('foo'); } else { alert(data); }
我已经简化了,但这就是了解正在发生的一切的必要条件。变量“数据”是AJAX调用的结果(如果有区别的话)。问题在于它总是转到’else’语句,并警告’成功’,如果转到’else’则不应该。知道这里发生了什么吗?
编辑:这是jQuery中完整的AJAX代码:
$.post("/manage_sites.php", {before:before, edit:after}, function(data){ if(data == success) { alert('blah'); } else { alert(data); } });
然后在PHP响应中:
...code.... $update = mysql_query("UPDATE users SET feeds = '$afterFeed' WHERE username = '$name'") or die("Query Failed"); if($update) { echo 'success'; //this is the 'string' that is being given to 'data' }
您可以使用以下方法在客户端修复它$.trim():
$.trim()
if($.trim(data) == 'success') {
或者,一种更好的方法是删除来自服务器端的换行符,这可能是您的PHP中某个错误的换行符,在<? ?>块之前或之后进行检查 ,这通常是它们出现的地方。
<? ?>
或者,仅在输出内容后退出,如下所示:
if($update) { echo 'success'; exit(); }