0

我的脚本返回数据不能正常工作。它哪里出错了?尝试过萤火虫,但我没有那么先进,它会帮助我。它也确实返回了我希望它返回的数据,但是如果 -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;
  }

如果结果为 okie,则将元素数据更改为“okieGood night”,当结果为“t”时,将元素数据更改为“tGood night”。php返回okie时应该是“okieGood day”吗?我也把结果放到了 html 中,所以我可以 100% 确定 php 会返回给我什么。

我想添加后续问题,是什么导致我的代码在 if 子句之前在屏幕上写入结果数据?

4

4 回答 4

0

您可以像这样使用 $.trim() 修复它:

if($.trim(result) == 'okie') {

于 2013-07-02T13:21:08.863 回答
0

如果我们看不到回复,我们真的无法帮助您。

但这就是你要做的,在 chorme 中打开你的萤火虫或“检查元素”,然后查看网络,而不是在创建 ajax 调用时,你应该检查从服务器获得的响应。

确保响应没有空格或类似的东西,以检查您的响应抛出客户端,您可以:console.log(result); 查看该变量的结果。

我强烈建议您开始使用 json 响应而不是简单的 html。

于 2013-07-02T13:22:07.027 回答
0

这可能是因为result变量中的前导空格。记住"okie" is not equal to " okie"。注意空格。您应该使用 trim() 函数从头开始删除所有空格。

使用 firebug 检查调用请求后返回的内容AJAX.

于 2013-07-02T13:25:49.083 回答
0

如果这不是解决方案,那么您需要检查您的服务器脚本。

var result = data.trim();      
于 2013-07-02T13:28:17.767 回答