2012-11-30 2 views
0

getJSON에서는 2 개의 다른 배열을 건네 줄 수가 있습니까?getJSON, 2 개의 다른 배열을 돌려주는 것

$.getJSON('<?php echo $_SERVER['SCRIPT_NAME']; ?>', { 
    ajax: 'ajax_article_partlist' , 
    parent_article: $('#selected_article').val() 
}, 
function(data) { 
    $('#articles').html(''); 
    $('#article_table').show('slide'); 
     for (var i = 0; i < data.length; i++) { 
     $('#articles').append("<p>"+data[i]+"</p>"); 
     } 
}); 

이것은 PHP 측의 에코 및 배열에 대한 나의 요청입니다. 하지만 지금은 두 번째 배열을 가져 왔습니다. 동일한 요청을 전달해야합니다. 그래서 가능하거나, 새로운 getJSON을 만들어야합니까?

PHP 코드 :

case 'ajax_article_partlist' : 
    header('Content-type: application/json'); 

    $form->addFormField(new FW_HTML_Form_Request('parent_article')); 

    $form->resolveRequest(); 

    $parent_article = $form->getValue('parent_article'); 
    $part_list =$db_obj->getFormatedPartList($parent_article); 
    $db_obj->checkArticleProgram($parent_article); 

    echo json_encode($part_list); 
    include($_SERVER['DOCUMENT_ROOT'].'/inc/includes/cms.footer.inc'); 
    exit; 
    break; 
+1

처럼 시도? – Amberlamps

+0

나는 어떻게 모른다? 아마 내가 왜 질문을 올렸는지 ... :) –

+0

PHP 코드 – GBD

답변

2
로 배열에 액세스 할 수 있습니다

다음은 배열 구문 세부 정보입니다. http://www.php.net/manual/en/language.types.array.php

그리고해서 getJSON 성공 기능보다: 두 배열을 JSON 개체를 만들하지는 왜

function(data) { 
    $('#articles').html(''); 
    $('#article_table').show('slide'); 
    for (var i = 0; i < data.parts_list.length; i++) { 
      $('#articles').append("<p>"+data.parts_list[i]+"</p>"); 
    } 
    for (var i = 0; i < data.second_array.length; i++) { 
      //do somethign with second array 
    } 
} 
+0

잘 보셨 겠지만 분명히 평소대로 생각했습니다. Thx –

4

내 PHP는 약간 녹슨이지만,이 작동 될 수 있습니다

$two_arrays = array(
    "array1" -> $part1_list, 
    "array2" -> $part2_list 
); 

echo json_encode($two_arrays); 

그리고 클라이언트 측

당신은 data.array1data.array2

1

$json=new stdClass(); 
$a=array('a'=>1); 
$b=array('b'=>2); 
$json->a=array(); 
$json->b=array(); 
$json->a=$a; 
$json->b=$b; 
echo json_encode($json); 
관련 문제