Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php jquery:是否可以使用serialize()创建带有嵌套数组的GET字符串?_Php_Javascript_Jquery_Ajax - Fatal编程技术网

Php jquery:是否可以使用serialize()创建带有嵌套数组的GET字符串?

Php jquery:是否可以使用serialize()创建带有嵌套数组的GET字符串?,php,javascript,jquery,ajax,Php,Javascript,Jquery,Ajax,我有一页有三张表格 创建一个有效的get(或post)data str,将每个表单作为嵌套数组嵌套数组 我想要的psuedo代码(只是不知道如何将它们封装在嵌套数组中..): 处理文件时所需的输出: print_r($_GET); /* { ['form1'] => .....nested array here.. ['form2'] => .....nested array here.. ['form3'] => .....nested array h

我有一页有三张表格

创建一个有效的get(或post)data str,将每个表单作为嵌套数组嵌套数组

我想要的psuedo代码(只是不知道如何将它们封装在嵌套数组中..):

处理文件时所需的输出:

print_r($_GET);
/*
{
    ['form1'] => .....nested array here..
    ['form2'] => .....nested array here..
    ['form3'] => .....nested array here..
}
*/

使用数组推送来实现这一点

但老实说,你最好使用一种形式,除非是最后一种资源,否则这三种形式都不需要。 或者干脆

var data_str = {
     'form1': $('#form1').serialize(),
     'form2': $('#form2').serialize(),
     'form3': $('#form3').serialize(),
    }
PHP可以将它们作为树状数组进行读取


您可能必须使用
serializeArray()相反

我不是javascript专业人士,但我已经构建了一个解决方案,它可以工作,享受:

function mutliple_forms_to_data_str(array_of_form_ids){
    var multidim_data = {};
    $.each(array_of_form_ids, function(index,id) {
        var forms_data = $('#'+id).serializeArray();            
        var htemp = {};
        $.each(forms_data, function(index,val) {
            htemp[val.name] = val.value;
        });
        multidim_data[id] = htemp;
    });    
    return multidim_data;
}

php是这样理解的:`Array([form_1]=>'data_str1'[form_2]=>'data_str2'[form_3]=>'data_str3')`它是3个表单,因为它是Web应用程序的一部分,并且表单可以单独提交。很有趣的接近。serializeArray(),给出数组([name]=>inputnamehere[value]=>2)[1]=>Array([name]=>inputnamehere[value]=>2011-03-06)
所以我丢失了KEY=>VALUE relationshipok,got it working将很快发布我的解决方案供其他人参考。谢谢Praveen,但这只创建了3个GET/post值,没有嵌套数组。存在序列化字符串而不是嵌套数组。。。
var data_str = {
     'form1': $('#form1').serialize(),
     'form2': $('#form2').serialize(),
     'form3': $('#form3').serialize(),
    }
function mutliple_forms_to_data_str(array_of_form_ids){
    var multidim_data = {};
    $.each(array_of_form_ids, function(index,id) {
        var forms_data = $('#'+id).serializeArray();            
        var htemp = {};
        $.each(forms_data, function(index,val) {
            htemp[val.name] = val.value;
        });
        multidim_data[id] = htemp;
    });    
    return multidim_data;
}