0

私は ajax や JavaScript などはあまり得意ではありません。

PHP ファイル 2 JSON 配列からエコーしました。

{key":"R\/EPspiig3jNffjjE6YWTsB+rsdlCjqnm1LExC\/vJXE=","nonce":"1aab51c5d8b23b7c110ae3f2a2d440bf0797750c85bd1602e8d57c357f34dab9"}

{"error":1,"message":"\u05d4\u05d0\u05d9\u05de\u05d9\u05d9\u05dc \u05e9\u05d4\u05d6\u05e0\u05ea \u05e9\u05d2\u05d5\u05d9 \u05d0\u05d5 \u05dc\u05d0 \u05ea\u05e7\u05d9\u05df \u05e0\u05e1\u05d4 \u05e9\u05d5\u05d1 ,\u05d0\u05e0\u05d0 \u05d4\u05db\u05e0\u05e1 \u05e1\u05d9\u05e1\u05de\u05d0"}

私のajaxにはこれがあります:

成功: 関数 (データ) {

           obj = JSON && JSON.parse(data) || $.parseJSON(data);

           if(data[0].login == true) 
            {  
                window.location = "index.php";

            }
            else
              {
             $("#siimage").trigger("click");
             $("form input:submit").effect("shake", {times:2}, 100);
             $("#errorMessage").html(data[0].message); 
             $("#nonce").val(data[1].nonce);
             $("#key").val(data[1].key);
              }




         if(data.cblocked == true)
         {
         $("#email").prop('disabled', true);
         $("#password").prop('disabled', true);
         $('input[type="submit"]').attr('disabled','disabled');
         document.getElementById("Submit").value = 'נעול';

         }
          if(data.csrf == true)
         {
         $("#email").prop('disabled', true);
         $("#password").prop('disabled', true);
         $('input[type="submit"]').attr('disabled','disabled');
         document.getElementById("Submit").value = 'נעול';

         }

これが問題です:

$("#nonce").val(data[1].nonce);
             $("#key").val(data[1].key);

とにかく私は2つの配列を持っているので、私はそれをどのように使用していますか? data[0] = 配列 1 と data[1] = 配列 2 のように?

4

1 に答える 1

0

まず、.responseTextAjax リクエスト オブジェクト ( HttpRequestObject)のプロパティを次のように確認します。

alert(request.responseText)

それが正しければ、2 つのアレイがマッシュアップされているように見えます。.split()といくつかの文字パターンを使用してそれらを分割する必要があります(:::たとえば、使用しました):

twoarrays = request.responseText.split(":::");

[0]これで、アドレスと[1]にJSON 形式の 2 つの文字列ができましたtwoarrays.parse()それぞれを配列に戻すために使用します。

私が話していることが理解できない場合は、調査を行う時が来ました。難しいことではありません。時間をかけて頭に入れておく必要があります。


(古い答え)

Javascript側を意味する場合は、

yourstring.parse()

正常に動作するはずです ( JavaScript で JSON を解析しますか? )。

.split()改行などを使用して応答する必要がある場合があります。

twoarrays = request.responseText.split("\n");
array1 = twoarrays[0].parse();
array2 = twoarrays[1].parse();

PHP側を意味する場合は、JSONjson_decode($yourstring, true)を解析して連想配列 (アドレスの番号ではなく名前を持つ配列) を使用できます。

参考までjson_encode($yourarray)に、反対のことをします。

于 2013-08-11T04:47:54.460 に答える