通过 AJAX 提交表单数组

Posted

技术标签:

【中文标题】通过 AJAX 提交表单数组【英文标题】:Submit Form Array Via AJAX 【发布时间】:2015-07-05 20:49:57 【问题描述】:

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

现在我有了一组新的字段,其中的信息需要作为数组传递。我已经尝试使用 serializeformData -- 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;
);

谢谢。

【问题讨论】:

尝试删除 datatype=json 并在隐藏元素中传递数组一次并提交您应该获取数组值的表单---一旦检查并让我们知道 使用FormData时,需要设置contentType:falseprocessData:false!!你做到了吗?? 可能重复:***.com/questions/9001526/… 【参考方案1】:

您可以尝试使用:

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';

【讨论】:

我是否需要将我想要发送的所有内容都放入 dataSend 数组中? @user1842842 是的,您可以将所有数据放在数组dataSend 中,并在 php 中详细说明数据。查看编辑。【参考方案2】:

你试过这个吗:

javascript 编写:

your_array = JSON.stringify(your_array);

在 PHP 中:

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

【讨论】:

以上是关于通过 AJAX 提交表单数组的主要内容,如果未能解决你的问题,请参考以下文章

Html中 from表单提交如何提交数组到java后台?

ajax传递数组form表单提交对象数组

将数据数组从表单传递到 ajax 到 PHP 发布文件

jquery+ajax验证不通过也提交表单问题处理

ajax基础2-使用ajax提交表单

怎么获取form表单将要提交的数据