【问题标题】:Submit Form Array Via AJAX通过 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!!你做到了吗??

标签: php jquery arrays ajax post


【解决方案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']);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-20
    • 2011-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多