2012-09-16 4 views
0

문제 방화범을 통해 내 json의 값을 이미 볼 수 있지만 문제점은 내 테이블에 추가하는 것입니다. 내 json_encode를 반향에서 변경하려고합니다 json_encode(array('red'=>$red, 'blue'=>$blue));json_encode($blue); 내 ajax가 실제로 json_encode($blue);에서 작동하는지 확인하고 내 toAppend += '<tr><td>'+data.red[i]['warrior_name']+'</td><td>Name</td><td>'+data.blue[i]['warrior_name']+'</td></tr>';을 변경합니다. toAppend += '<tr><td>'+data[i]['warrior_name']+'</td></tr>';에 내 테이블에 완벽하게 표시되지만 파란색 배열 만 있으면 파란색과 빨간색 배열이 모두 필요합니다. 그래서 나는 무엇이 잘못 되었는가를 알고 싶습니다.json에서 배열에 배열로 json을 검색하는 방법은 무엇입니까?

//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({ 
       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); 
        } 
       } 
      }); 

답변

1

하여 출력의 구조는 위에 적절한 반복에 대한 아주 나쁜

여기 내 PHP 코드입니다. 그러나 redblue 가정은 항상 같은 요소는 당신이 생을 할 수있는 계산이 있습니다

$.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); 
    } 
}); 

이 같은 배열 청소기 다음과 같습니다

다음
[{"red": ..., "blue": ...}, 
{"red": ..., "blue": ...}, 
] 

당신이 단순히 반복하고 red에 액세스 할 수 있습니다 및 blue 요소의 속성 :

$.each(data, function(i, row) { 
    // row.red 
    // row.blue 
}); 
+0

청색 또는 적색 배열에서 나는 것을 어떻게 알 수 있습니까? –

+0

죄송합니다. 저는이 덕분에 새로운 것입니다. 이것을 시도해 보겠습니다. –

+0

덕분에 작동합니다! 당신은 그것을 개선하기위한 그 어떤 나쁜 제안도 꽤 나쁘다고 말 했나요? 괜찮으 시다면요. :) –

관련 문제