2012-11-30 76 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);