有没有办法在AJAX响应中发送两个json对象?

时间:2016-05-09 18:06:35

标签: jquery ajax

我创建了一个AJAX请求,我已将数据发送到process.php页面,此页面将处理此数据,然后将创建一个将作为AJAX响应发送的JSON对象。现在我需要创建一个第二个JSON对象才能作为AJAX响应发送,这是可能的吗? ,如果可能的话,我怎么能单独管理这两个对象?

我的代码是:

$(document).on('change', '#seleccio_test,#seleccio_test2', function(){

    var capaTEST;
    var pagina="show_test_prova.php";
     $.ajax({
                 async:false,    
                 cache:false,   
                 dataType:"json",        
                 type: "POST",   
                 url: pagina,
                 data: "dades_test="+obtenirTest(),
                 success:  function(obj1){ 

                    //alert(JSON.stringify(resultat));
                        var idtest=0;
                        $.each(obj1, function(key, value) {//object 1 that i retrieve from process.php

                            if(key !=0){

                                for (i = 0; i < value.length; i++) { 
                                    alert("Key:" + key + " /value: " + value+" /index: "+idtest);

                                    var llistat_test="";
                                    llistat_test +="<div id='"+value+"'>";
                                    llistat_test+="<ol><li><label for='test' id='etiquetalabel'>"+value[i]+"</label>";
                                    llistat_test+="<input type='checkbox' id='$capaCONTENT"+idtest+"name='test[]' value='"+value[i]+"'";
                                    llista_test+="onclick=' onclick='show_content($seleccio_content,$id_capa,$pagina,$idtest,$valor_org,$valor_eval,$valor_test)';>";
                                    llistat_test+="</div> <ol> <div style='display: none;'> </div></ol></li></ol> ";

                                    var contenido= $("#"+key);
                                    var elementBuscado=$("#"+value);

                                     //if(!contenido.find(elementBuscado).length){
                                        //no exist
                                        contenido.append(llistat_test);

                                        //}
                                    idtest++;
                                        }       
                                    }

                                });

                            },
        beforeSend:function(){},
        error:function(jqXHR, textStatus, errorThrown ){}
    })

})  

问候。

3 个答案:

答案 0 :(得分:0)

是的,将两个对象放在一个更大的JSON对象中。无论是数组为2,还是带有键+值对的Map / Hash / Object都可以正常工作。

我没有看到您的PHP代码,但假设您决定返回两个对象的数组,您的客户端代码看起来像

success:  function(array){
   obj1 = array[0]
   obj2 = array[1]
  ... 

JSON对象可以包含无限量的内部数组或对象。

示例JSON对象:{"key","value"}

两个对象的示例JSON数组:[ {"key","value"}, {"key","value"} ]

答案 1 :(得分:0)

当您回复json_encode($var)时,您可以使用array 代替变量,如下所示:

echo json_encode(array('data1' => $var1, 'data2' => $var2));

在js或jquery部分,您可以obj.data1obj.data2

访问它们

答案 2 :(得分:-1)

查看multipart / form-data。没有使用它,但我认为这是你想要的。

HTTP multipart response using Perl or PHP