getJSON,返回2个不同的数组

时间:2012-11-30 08:36:36

标签: php jquery getjson

是否可以使用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;

3 个答案:

答案 0 :(得分:4)

我的PHP有点生疏,但这可能有效:

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

echo json_encode($two_arrays);

在您的客户端,您可以data.array1data.array2

访问数组

答案 1 :(得分: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
     }
}

答案 2 :(得分: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);