0

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

3 回答 3

4

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

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

echo json_encode($two_arrays);

在您的客户端,您可以访问data.array1数组data.array2

于 2012-11-30T08:49:20.277 回答
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
     }
}
于 2012-11-30T08:51:11.453 回答
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);
于 2012-11-30T08:53:15.077 回答