Jquery 如何使用数组检索json?
问题是我已经可以通过firebug看到我的json的值,但问题是将它附加到我的表中,我尝试将我的json_编码从echoJquery 如何使用数组检索json?,jquery,json,Jquery,Json,问题是我已经可以通过firebug看到我的json的值,但问题是将它附加到我的表中,我尝试将我的json_编码从echojson_编码(数组('red'=>$red',blue'=>$blue))到json\u编码($blue)查看我的ajax是否真的有效,然后使用json\u编码($blue)和我更改我的以显示+=''+数据。红色[I]['warrior\u name']+'name'+数据。蓝色[I]['warrior\u name']+''到到出现+=''+数据[i]['warrior\u
json_编码(数组('red'=>$red',blue'=>$blue))代码>到json\u编码($blue)
查看我的ajax是否真的有效,然后使用json\u编码($blue)代码>和我更改我的以显示+=''+数据。红色[I]['warrior\u name']+'name'+数据。蓝色[I]['warrior\u name']+''代码>到到出现+=''+数据[i]['warrior\u name']+''代码>然后它完美地显示在我的表中,但只有蓝色数组,我想要蓝色和红色数组。所以我想知道是什么错了,还是我遗漏了什么
以下是我的PHP代码:
//get blue_team attributes
$blue = array();
$blue_result = $db->dataWarrior($battle_id,$blue_name);
foreach($blue_result as $warrior){
$blue[] = $warrior;
}
//get red_team attributes
$red = array();
$red_result = $db->dataWarrior($battle_id,$red_name);
foreach($red_result as $warrior){
$red[] = $warrior;
}
echo json_encode(array('red'=>$red, 'blue'=>$blue));
以下是我的ajax代码:
$.ajax({
url: "battle_review.php",
type: "post",
datatype: "json",
data: {
bname: blue_name,
btype: blue_type,
rname: red_name,
rtype: red_type },
success: function(data){
var toAppend = '';
if(typeof data === "object"){
for(var i=0;i<data.length;i++){
toAppend += '<tbody>';
toAppend += '<tr><td>'+data.red[i]['warrior_name']+'</td><td>Name</td><td>'+data.blue[i]['warrior_name']+'</td></tr>';
toAppend += '</tbody>';
}
$("#battledata").append(toAppend);
}
}
});
$.ajax({
url:“battle_review.php”,
类型:“post”,
数据类型:“json”,
数据:{
B名字:蓝色的名字,
b类型:蓝色_类型,
rname:Redu的名字,
rtype:red_type},
成功:功能(数据){
var toAppend='';
如果(数据类型==“对象”){
对于(var i=0;i来说,输出的结构对于在其上进行适当的迭代来说非常糟糕。但是,假设red
和blue
始终具有相同的元素计数,则可以执行以下操作:
$.ajax({
url: "battle_review.php",
type: "POST", // uppercase
dataType: "json", // uppercase T
data: {
bname: blue_name,
btype: blue_type,
rname: red_name,
rtype: red_type
},
success: function(data) {
var toAppend = '';
for(var i = 0; i < data.red.length; i++) {
toAppend += '<tbody>';
toAppend += '<tr><td>' + data.red[i].warrior_name. + '</td><td>Name</td><td>' + data.blue[i].warrior_name + '</td></tr>';
toAppend += '</tbody>';
}
$("#battledata").append(toAppend);
}
});
然后,您可以简单地迭代它并访问元素的红色
和蓝色
属性:
$.each(data, function(i, row) {
// row.red
// row.blue
});
我如何知道它是来自我的蓝色阵列还是红色阵列?谢谢,它很有效!你说它很糟糕。有什么改进建议吗?如果你同意的话。:)
$.each(data, function(i, row) {
// row.red
// row.blue
});