我的脚本返回数据不能正常工作。哪里出错了?尝试过萤火虫,但我不是那么先进,它会帮助我。它也会返回我希望它返回的数据,但是如果-clause不起作用,我希望它可以工作。
$(function () {
$('form').submit(function (a) {
var thisForm = $(this);
a.preventDefault();
$(this).fadeOut(function () {
$("#loading2").fadeIn(function () {
$.ajax({
type: 'POST',
url: thisForm.attr("action"),
data: thisForm.serialize(),
success: function (data) {
result = data;
$("#loading2").fadeOut(function () {
$("#success2").text(data).fadeIn();
if (result == "okie") {
x = "Good day";
document.getElementById("text1").innerHTML = Tulos + x;
} else {
x = "Good evening";
document.getElementById("text1").innerHTML = Tulos + x;
}
});
}
});
});
});
})
});
这一切都有效,直到if
部分。首次提交表单的Php文件返回“okie”或“t”。当if(result == "okie")
部分运行时,它每次都会带我到else
部分。
if (result == "okie") {
x = "Good day";
document.getElementById("text1").innerHTML = result + x;
} else {
x = "Good evening";
document.getElementById("text1").innerHTML = result + x;
}
如果结果正常,则将元素数据更改为“okieGood evening”,当它为“t”时,它将元素更改为“tGood evening”。当php返回okie时,它应该是“okieGood day”吗?我把结果放到了html中,所以我可以100%确定php返回给我的是什么。
我想添加后续问题,是什么原因导致我的代码在if子句之前在屏幕上写入结果数据?
答案 0 :(得分:0)
您可以使用$ .trim()修复它:
if($.trim(result) == 'okie') {
答案 1 :(得分:0)
但这就是你所做的,在chorme中打开你的firebug或“inspect element”并查看网络,而不是在你创建一个ajax调用时,你应该检查你从服务器得到的响应。
确保响应没有空格或类似的东西, 检查你的响应是否抛出了客户端:console.log(result); 查看该变量的结果。
我热烈建议你开始使用json响应而不是简单的html。
答案 2 :(得分:0)
可能是因为result
变量中的前导空格。记住"okie" is not equal to " okie"
。注意空格。您应该使用trim()函数从头开始删除所有空格。
在使用AJAX.
答案 3 :(得分:0)
如果这不是解决方案,那么您需要检查服务器脚本。
var result = data.trim();