发送一个多维数组到PHP

时间:2012-05-31 10:12:20

标签: php jquery json multidimensional-array

我有一个未知数量的输入,我想将它们写在数据库中。我尝试了一些不同的方法但没有任何效果我不知道输入的数量,所以我需要像多维数组

的javascript:

var temp=new Array();
    var obj;
    $("#mitarbFuktionen fieldset").each(function(){
        i=$(this).parent().children().index($(this));
        if ($(this).hasClass("New")){
          temp[0]='New';
          temp[1]=$("legend",this).text();
          //.....
          obj+=JSON.stringify(temp)
        }else if ($(this).hasClass("Remove")){
          temp[0]='Remove';
          temp[1]=$("legend",this).text();
          //.....
          obj=$.toJSON(temp);
        }

    })
    $.post("ajax/MitarbSave.php",{
        anrede:$('input[name="neuMitarbAnrede"]:checked').val(),
        titel:$('#neuMitarbTitel').val(),
        nation:$('#neuMitarbNat').val(),
        //.....
        'kom[]': obj
    }, function(data){
        alert(data);
    })

PHP:

$output= json_decode($_POST["kom"], true);
echo var_dump($output);

3 个答案:

答案 0 :(得分:1)

只是为了回答我的评论:

$(document).ready(function()
{
    var test = [];
        test.push('a');
        test.push('b');

    $.post('ajax/script.php',
    {
        Param : test
    }, 
    function(resp)
    {

    }, 'json');
});

jQuery会在作为param传递给Ajax请求时自动将数组转换为多维数组。

答案 1 :(得分:1)

你也可以建立一个对象,一个传递:

var obj={};
$("#mitarbFuktionen fieldset").each(function(){
    var i=$(this).index();
    obj[i]={};
    obj[i][$(this).is(".New") ? 'New :' : 'Remove :'] = $("legend", this).text();
});

$.post("ajax/MitarbSave.php",{
    anrede:$('input[name="neuMitarbAnrede"]:checked').val(),
    titel:$('#neuMitarbTitel').val(),
    nation:$('#neuMitarbNat').val(),
    kom: obj
}, function(data){
    alert(data);
})​;​

答案 2 :(得分:0)

只需将数组添加到HTML中的输入字段,如:

<input type="text" name="neuMitarb[NUMBER][anrede]">
<input type="text" name="neuMitarb[NUMBER][titel]">
//...

所以你让html创建你的数组。提交您的表单,如常规表单提交ajax