【问题标题】:getJSON, give back 2 different arraysgetJSON,返回 2 个不同的数组
【发布时间】:2012-11-30 16:53:15
【问题描述】:

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;

【问题讨论】:

  • 为什么不用两个数组创建一个 JSON 对象?
  • 我不知道怎么做?可能这就是我发布问题的原因...... :)
  • php 中的第一个和第二个数组在哪里? echo json_encode($part_list); ?
  • 这只是第一个数组,不知道在哪里实现第二个,但它是这个:`$db_obj->checkArticleProgram($parent_article);`

标签: php jquery getjson


【解决方案1】:

我的 PHP 有点生锈,但这可能会起作用:

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

echo json_encode($two_arrays);

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

【讨论】:

    【解决方案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
         }
    }
    

    【讨论】:

    • 嗯嗯,这很明显,我只是像往常一样想多了.. Thx
    【解决方案3】:

    这样试试

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

    【讨论】:

      猜你喜欢
      • 2023-03-09
      • 1970-01-01
      • 1970-01-01
      • 2011-04-15
      • 1970-01-01
      • 1970-01-01
      • 2015-06-09
      • 2011-10-03
      • 1970-01-01
      相关资源
      最近更新 更多