通过AJAX提交表单数组

时间:2015-04-27 11:58:32

标签: php jquery arrays ajax post

我有一个表单,我想通过Ajax提交,但是,它的一部分包含一个数组。我很难通过Ajax传递这个数组。下面是我的Ajax的一个例子,我通常会在数据之后传递表单条目数据(一个:$('#one')。val())我会有一行每个领域都有这个。

现在我有了一组新的字段,其中信息需要作为数组传递。我尝试过使用序列化 formData - var fd = new FormData("#form") - 到目前为止,这个数组已经通过,或者表单中没有任何内容通过,或只是数组没有通过。

任何人都可以指出我正确的方向吗?

$("#form").submit(
function() {

    if (confirm('Are you sure you want to edit this?')) {

        $("#formMessages").removeClass().addClass('alert alert-info').html(
            '<img src="images/loading.gif" /> Validating....').fadeIn(500);


        $.ajax({
            url: $("#form").attr('action'),
            dataType: 'json',
            type: 'POST',
            data: {
                one: $('#one').val(),
                two: $('#two').val()
            },

            success: function(data){
                //success stuff would be here
            }
        });

    }
    return false;
});

感谢。

2 个答案:

答案 0 :(得分:0)

你试过这个:

用JavaScript编写:

your_array = JSON.stringify(your_array);

在PHP中:

$array = json_encode($_POST['array']);

答案 1 :(得分:0)

您可以尝试使用:

var dataSend = {};
dataSend['one'] = $('#one').val();
dataSend['two'] = $('#two').val();
dataSend['three'] = $('#three').val();

然后在ajax

data: {dataSend:dataSend}

您可以使用json:

在php中收集数据
$json = json_encode($_POST['dataSend']);
$json = json_decode($json);

print_r($json);

查看输出。

修改

您可以在php中收集数据,如下所示:

$one = $json->{'one'};
$two = $json->{'two'};