2017-02-01 51 views
2

PHP APIファイルがあります。これはJSONで配列をエンコードしてから、jQueryファイルのJSONデータを取得して動的に要素を作成します。jQueryでJSONオブジェクトの配列を作成

どのようにでしょう....私は私が受け取ったJSONから配列を作成する必要があるので、私は私が代わりに新しいAPI呼び出しを行うといつでも受信したデータをアクセスもして、結果を谷繰り返すことができますjQueryコード内のどこにでもデータにアクセスするためのjQuery配列を作成しますか?

私のPHPの配列: 場合(mysqli_num_rows($のrun_query)> 0){

$ids = array(); 
$namen = array(); 
$brouwerijen = array(); 
$types = array(); 
$gistingen = array(); 
$percs = array(); 
$inkoop_prijzen = array(); 
$biertjes = array(); 

while($row = mysqli_fetch_assoc($run_query)) { 
    $id = $row['id']; 
    $naam = $row['naam']; 
    $brouwerij = $row['bouwerij']; 
    $type = $row['type']; 
    $gisting = $row['gisting']; 
    $perc = $row['perc']; 
    $inkoop_prijs = $row['inkoop_prijs']; 

    $ids[] = $id; 
    $namen[] = $naam; 
    $brouwerijen[] = $brouwerij; 
    $types[] = $type; 
    $gistingen[] = $gisting; 
    $percs[] = $perc; 
    $inkoop_prijzen[] = $inkoop_prijs; 

} 

for($i=0; $i < count($ids); $i++){ 

    $biertjes[] = array("id"=>$ids[$i], "naam"=>$namen[$i], "brouwerij"=>$brouwerijen[$i], "type"=>$types[$i], "gisting"=>$gistingen[$i], "perc"=>$percs[$i], "inkoop_prijs"=>$inkoop_prijzen[$i]); 

} 

echo json_encode($biertjes); 


}  

私はjQueryの中で実行しようとしましたが、(biertjes.pushライン)動作しませんでした何を:

+1

私はあなたが 'biertjes.push必要があると思う({ "ID" を:item.id});'、できないのはなぜ 'biertjes =データ'? – Satpal

答えて

1

あなたはJSONのサンプルを投稿していないよう確実に知ることは困難

var biertjes = []; 
$.ajax({ 
    url : "action-api.php", 
    method: "GET", 
    dataType: 'json', 
    success : function(data){ 
     console.log(data); 

     var html = '<table style="width:100%"> <tr> <th>Edit</th> <th>Info</th> <th>Delete</th> <th>Naam</th> <th>Percentage</th> </tr>'; 

     $.each(data, function(i, item) { 
      html+='<tr><td><div class="edit"><img src="img/edit.png"/></div></td>'; 
      html+='<td><div class="info"><img src="img/info.png"/></div></td>'; 
      html+='<td><div class="delete"><img src="img/delete.png"/></div></td>'; 
      html+='<td>'+item.naam+'</td>'; 
      html+='<td>'+item.perc+'</td></tr>'; 
      biertjes.push(["id", item.id]); 
     }); 

     html+='</table>' 
     container.append(html).css(tableCss()); 
    }, 
});  
、しかし...あなたのAJAX呼び出しから

を私たちは、あなたがJSONレスポンスは、したがって、データになるだろう期待していることがわかりますプレーンなJSオブジェクト。 JSONが次のような場合:

[{ 
    "id": 111, 
    "naam": "AAAA", 
    "perc": 111.11 
}, { 
    "id": 222, 
    "naam": "BBBB", 
    "perc": 222.22 
}, { 
    "id": 333, 
    "naam": "CCCC", 
    "perc": 333.33 
}] 

データ変数はJS配列になります。したがって、あなたは行うことができます

console.log(data[0].id) // 111 
console.log(data[1].naam) // 'BBBB' 

for (var i=0; i < data.length(); i = i + 1){ 
    console.log('Element ' + i + ' = ' + JSON.stringify(data[i])) 
} 

結論 - 別の配列を作成する必要はなく、単にデータを使用します。あなたは、AJAX成功関数の外配列にアクセスする必要がある場合:

biertjes = data 
関連する問題