0

返信しているにもかかわらず、質問が放棄され続けるので、誰かが私のエラーを見て助けてくれることを期待して、質問を作り直します. 私はできるだけ徹底的にしようとします。

ステップ 1: 次の形式の DivisionsLarge という名前の配列があります。

divisionsLarge = [{ "car":"Toyota", "color":"blue", "numberTires":"four" }, { "car":"Honda", "color":"red", "numberTires":"four"}, etc. etc. ... ]

(このデータは架空のものですが、どこかで間違っているのはプロセスです (またnumberTires、int ではなく文字列として格納されているという事実を無視してください。架空の人々です :P)

とにかく、上記のエントリが 92 個あり、すべて同じキー (車、色、タイヤ数) を持っています。

ここで、car と numberTires キーだけで配列を作成するために 、次の関数ループで配列を調べます。

var divisions = [];
for (var i = 0; i < divisionsLarge.length; i++) {
    if(divisionsLarge[i].numberTires != "two"){
          var obj = { "car": divisionsLarge[i].car,
                      "numberTires": divisionsLarge[i].numberTires};
          divisions.push(obj);}
    }

わかりました、この時点で、すべてが順調に進んでいると思います。FireBug でコンソールを使用して入力すると、divisions[0]次のような美しいオブジェクトが 表示されます。

Object { car = "Toyota", numberTires = "four"}

(""車とタイヤの数のエントリがまだ残っていると思います。これは、FireBug がオブジェクトを表示する方法です。間違っている可能性があります)

今ここに私が助けを必要としているものがあります。数えきれないほどの .ajax クエリを作成しました。JSON.stringified を使用しました。JSON.stringified は使用しませんでした。json_decode() を使用しました。print_r($_POST) を実行したばかりです。何が問題であるかを診断するために、何が何に影響を与えているかを分析します。私の .ajax POSTS が間違っている可能性があり、私の PHP が間違っている可能性があります。ですから、ここに私が答えていただきたい質問があります:

1) divisionsJavaScript によって作成される配列は、JSON と見なされますか、それとも簡単に JSON に変換される形式ですか?

2) 私の AJAX 呼び出しはどのようなものである必要がありますか? 私は非常に多くの AJAX 呼び出しを試したので、何が正しいか間違っているかわかりません。また、配列は に含まれるものによって動的に生成されるdivisionsため、上記で提供した配列のスニペットではなく、使用してください。divisionsdivisionsLarge

3) 私のdivisions.phpPHP ファイルはどのように見える必要がありますか? 現在、それ<script></script>を参照するタグを含む HTML スケルトンがdivisionsLarge.jsあり、divisions.js[これらは 1 つのファイルにある必要があり.jsますか?] 長い間、空白のページを見てきArray()たので、PHP ファイルの残りの部分を疑っています。

4) たとえば、最初のインデックスの色の値を取得するにはどうすればよいですか? これは初歩的なことのように思えますが、私が目にするほとんどの例は、たとえばecho $_POST["color"]、1 つのオブジェクトだけの配列を照会しているだけですが、複数の のエントリがcolorあるため、最初の 1 つだけを要求する方法がわかりません。これを知りたいのは、主に、アレイが機能しているかどうかのテストで非常にうまくいかなかったprint_r($_POST)からvar_dump($json)です。

4

1 に答える 1

1

では、まず質問を。次にコード:

1.- Divisions は JSON とは見なされず、単なるオブジェクト配列です。JSON.stringify()すべての JavaScript オブジェクトは、;を使用して簡単に JSON に変換できます。以下のコードを見てください。

2.- 以下のコードを見てください。

3.- PHP でどのような処理が必要かわかりません。以下のコードは、これを別のページに投稿することを想定しており、そこで何らかの処理を行い、関数で使用できる何かを出力しcompleteます。

4.- 以下のコードを見てください。

これがあなたがやりたいことだと思います:

Javascript

divisionsLarge = [{ "car":"Toyota", "color":"blue", "numberTires":"four" }, { "car":"Honda", "color":"red", "numberTires":"four"}];

var divisions = [];


for (var i = 0; i < divisionsLarge.length; i++) {
    if(divisionsLarge[i].numberTires != "two"){
          var obj = { "car": divisionsLarge[i].car,
                      "numberTires": divisionsLarge[i].numberTires};
          divisions.push(obj);}
    }

//I am just going to send one of your array elements as a JSON object.
var postData = JSON.stringify(divisions[0]);
var url = "url where you want to post your data";

$.ajax(url, {
    type: "POST",
    data: { "jsonBeingSent" : postData },
    success: function(data) {
      //Do whatever you need to do with your PHP output here. 
      //If you are using something like my php sample then you will be receiving a JSON object(s)

    }
});

さて、あなたのPHPでは、おそらく次のようなものが欲しいでしょう:

<?php

   //You may want to do some checking about the sender, and so on.
   $receivedData = json_decode($_POST['jsonBeingSent']);

   //You should see something like this if you print_r $receivedData
   // object(stdClass) {
   //      [car] => ...
   //      [numberTires] => ...  
   // }

   //So you could access the car value like this
   echo $receivedData->{'car'};

   //Do your processing and then, if you are using an array or object you can use `json_encode()` to output your data.

?>

それが役立つことを願っています。

于 2013-02-26T04:09:42.267 に答える