0

スクリプトが返すデータが正常に機能しません。どこが悪いのでしょうか?firebugを試してみましたが、私はそれが私を助けたほど進んでいません。また、データを返しますが、返されることを期待していますが、-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 の場合は要素データを「okieこんばんは」に、「t」の場合は要素を「tこんばんは」に変更します。PHPがokieを返すのは「okieGood day」でしょうか? 私は結果をhtmlにも入れたので、phpが私に何を返すかを100%確信することができます.

フォローアップの質問を追加したいのですが、コードが if 句の前に画面に結果データを書き込む原因は何ですか?

4

4 に答える 4

0

result変数の先頭のスペースが原因である可能性があります。覚えておいてください"okie" is not equal to " okie"。スペースに注意してください。trim() 関数を使用して、最初からすべてのスペースを削除する必要があります。

を使用してリクエストを呼び出した後に返されるものをfirebugを使用して検査しますAJAX.

于 2013-07-02T13:25:49.083 に答える
0

応答が見られない場合、私たちは本当にあなたを助けることはできません.

ただし、これはあなたが行うことであり、chormeでfirebugまたは「要素の検査」を開き、ネットワークを表示します.ajax呼び出しを作成するときは、サーバーからの応答を確認する必要があります.

応答にスペースなどが含まれていないことを確認してください。応答がクライアント側でスローされたことを確認するには、次のようにします。その変数の結果を表示します。

単純な html ではなく、json レスポンスを使用することを強くお勧めします。

于 2013-07-02T13:22:07.027 に答える
0

次のように $.trim() を使用して修正できます。

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

于 2013-07-02T13:21:08.863 に答える