0

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

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

3 回答 3

1

只是为了回答我的评论:

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

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

    }, 'json');
});

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

于 2012-05-31T10:41:16.260 回答
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);
})​;​
于 2012-05-31T10:48:34.763 回答
0

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

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

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

于 2012-05-31T10:39:47.213 回答