2017-02-23 6 views
0

PHPスクリプトにajaxリクエストを呼び出すことに成功しました。これは私が働くために必要なコードの部分です:jsonでエンコードされた多次元配列をajaxで取得します

success: function (response, status) { 
     $.each(response, function (i, item) { 
      alert(item.id); 

item.idは何もありません。

[ 
    { 
    "conto": "1" 
    }, 
    { 
    "id": "4", 
    "activity_id": "50", 
    "path": "Testo/base.png", 
    "title": "Ffgf", 
    "descrizione": "Tttt" 
    }, 
    { 
    "id": "8", 
    "activity_id": "50", 
    "path": "Testo/61FCFUX_IMG_0536.PNG", 
    "title": "Hggggg", 
    "descrizione": "Tgg" 
    } 
] 

私が間違って何をしますか:PHPページによってjson_encoded配列 -

これは、生成されたのですか?

p.s:気付いた場合、これは2つの配列間の配列マージです。最初のものは "conto" inを報告し、もう1つはデータベースで要素を取得して生成されるリストです。

+0

最初の繰り返しでは、item.idは定義されません。単にそのオブジェクトに存在しないからです。次のようにチェックする: 'if(item.id){// do your stuff}' –

答えて

1

最初の配列にはidが含まれていないので、未定義の値が得られます。最初の配列をスキップする:

$.each(response, function (i, item) { 
     if(i==0) 
     { 
      alert(item.costo); 
      } 
      else 
      { 
      alert(item.id); 
      //Or better to use console 
      console.log(item.id); 
      } 

     }); 
+0

作業していません...私はそれが多次元配列であるという事実に関連していると思います。 –

+0

あなたの例では動作するはずですので、あなたの応答を確認してください。例を見てください:https://jsfiddle.net/sqdjk1zL/ –

+0

@ GiovanniPalermaあなたが話している多次元配列はどこですか? – Coder

-1

あなたの問題はあなたの参照であると思います。 JSONオブジェクトには配列が含まれているため、添字を使用して配列を参照する必要があります。 item.idをitem [i] .idに変更してみてください。こうすることで、各関数が配列を反復処理するので、各オブジェクトのidフィールドを参照できます。

編集:ここに作業コードがあります。

$(document).ready(function(){ 

    var source = '[{"conto":"1"},{"id":"4","activity_id":"50","path":"Testo\/base.png","title":"Ffgf","descrizione":"Tttt"},{"id":"8","activity_id":"50","path":"Testo\/61FCFUX_IMG_0536.PNG","title":"Hggggg","descrizione":"Tgg"}]'; 
    source = JSON.parse(source); 
    var cellcount = length(source); 

    for(var i = 0; i < cellcount; i++){ 
     console.log(source[i].id); 
    } 

}); 

function length(obj) { 
    return Object.keys(obj).length; 
} 
+0

OPはjQueryの '.each()'を使用しているので、 'item'が実際のオブジェクトになります。 http://api.jquery.com/jquery.each/。そうでない場合でも、item(i)(関数呼び出し)ではなく、item [i](配列/オブジェクトインデックス)です。 –

+0

@MagnusEriksson編集した答えからわかるように、私が何を話していたかを示すコードを追加しました。私はちょうどそれを固定する前にそれをまっすぐにする分が必要でした。あまりにも迅速に人々をdownvoteしないでください。 – Daniel

+0

@ダニエルdownvotesを心配しないでください。彼らはただあなたが即興になるように提案しようとします。 – Coder

関連する問題