0

私はphpの配列(explodeを使用して文字列から変換)を別のjavascriptページに送信しています。どうすれば JavaScript 配列に入り、実際にデータ値を取得できるのだろうかと思っていました。

JavaScriptの配列(phpファイルから)-

array(2) {
  [0]=>
  string(2) "30"
  [1]=>
  string(0) ""
}
array(2) {
  [0]=>
  string(2) "30"
  [1]=>
  string(0) ""
}

これがjavascriptページのajax呼び出しです -

$.ajax({
    url: "GetTest.php",
    type: "POST",
    success: function(data){
     alert("success");
     console.log(data);  
    },
    error: function(data){
     alert('failure'); 
    }
});

phpページで -

var_dump((explode(',', $something));

ここに入って「30」の値を引き出すにはどうすればよいですか。このデータを取得するために ajax 呼び出しを使用し、この配列を "data" という変数に配置していますが、data[0] のようなことをすると、文字 "a" が応答として返されます。これに対する助けは大歓迎です。ありがとう、

4

3 に答える 3

3

配列自体を返す場合、JavaScript オブジェクトには変換されません。文字列「Array」が得られると思います。必要なのはjson_encode($your_array)、配列を JavaScript オブジェクトに変換する呼び出しです。次に、PHP は次のような JavaScript オブジェクトを返します。

{
  "0": "30",
  "1": ""
}

その後、応答に対して JSON.parse を呼び出し、他の JavaScript オブジェクトと同様に、そのオブジェクトのデータにアクセスできます。

注: PHP < 5.2 を使用していて、JSON PECL 拡張機能がインストールされていjson_encode()ない場合、関数は使用できず、配列を JSON に変換する関数を作成するか、他の人が作成した関数を見つける必要があります。

于 2012-07-09T14:13:08.447 に答える
0

JavaScript 配列は次のようになります...

var myArray = ["30", "0"];

インデックス 0 で 'a' を取得した場合は、配列ではなく文字列である可能性があります。

"array"[0] === "a"

そのため、最初にクライアント側の配列を修正する必要があります。

于 2012-07-09T14:12:42.993 に答える
0

純粋な JavaScript の場合:

xhr.onreadystatechange = function()//where xhr is your request object
{
    if (this.readyState === 4 && this.status === 200)
    {
        var yourArray = JSON.parse(this.responseText);
        console.log(yourArray);//logs the array above, normally
    }
};

少なくとも 9 より前の IE では、標準として JSON がサポートされていないことに注意してください。その場合は、JSON.js をググってヘッダーに含めます。
また、エコーする前に、送信する配列がjson_encode'ed' であることを確認してください。

あなたが追加したコードを見て、私は言うだろうecho json_encode(explode(',',$someString));:

于 2012-07-09T14:15:37.700 に答える