2012-11-30 113 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

爲什麼鴕鳥政策你犯了一個JSON對象有兩個陣列? – Amberlamps

+0

我不知道如何?可能這就是爲什麼我發佈的問題... :) –

+0

粘貼你的PHP代碼 – GBD

回答

2

以下是陣列語法詳細信息:http://www.php.net/manual/en/language.types.array.php

echo json_encode(array("part_list" => $part_list, "second_array" => $second_array)); 

,比的getJSON成功功能:

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);