2012-11-30 3 views
0

Est-il possible avec getJSON de passer 2 tableaux différents?getJSON, redonner 2 tableaux différents

$.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>"); 
     } 
}); 

Ceci est ma demande, sur le côté php i écho et array. Mais j'ai maintenant un deuxième tableau que je dois transmettre dans la même demande. Est-ce possible, ou dois-je faire un nouveau getJSON?

code 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

Pourquoi ne pas vous faire un objet JSON avec deux tableaux? – Amberlamps

+0

je ne sais pas comment? probablement c'est pourquoi j'ai posté la question ... :) –

+0

collez votre code PHP – GBD

Répondre

2

Voici les détails de la syntaxe du tableau: http://www.php.net/manual/en/language.types.array.php

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

Et qu'en fonction de la réussite 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

euhh bien que vous étiez évident, j'ai juste surmonté comme d'habitude .. Thx –

4

Mon PHP est un peu rouillé, mais cela pourrait fonctionner:

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

echo json_encode($two_arrays); 

Et de votre côté client vous pouvez accéder aux tableaux comme data.array1 et data.array2

1

Essayez comme ça

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