Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 通过AJAX提交表单数组_Php_Jquery_Arrays_Ajax_Post - Fatal编程技术网

Php 通过AJAX提交表单数组

Php 通过AJAX提交表单数组,php,jquery,arrays,ajax,post,Php,Jquery,Arrays,Ajax,Post,我有一个表单,我想通过Ajax提交,但是,它的一部分包含一个数组。我很难通过Ajax传递这个数组。下面是我的Ajax的一个例子,我通常会通过在data one:$'one'.val之后如何在下面传递表单条目数据,其中每个字段有一行 现在我有了一组新的字段,其中的信息需要作为数组传递。我尝试过使用serialize和formData-var fd=new-FormDataform-到目前为止,要么只传递了这个数组,要么没有传递表单中的任何内容,要么只是没有传递数组 谁能给我指一下正确的方向吗 $(

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

现在我有了一组新的字段,其中的信息需要作为数组传递。我尝试过使用serialize和formData-var fd=new-FormDataform-到目前为止,要么只传递了这个数组,要么没有传递表单中的任何内容,要么只是没有传递数组

谁能给我指一下正确的方向吗

$("#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;
});
谢谢。

你试过这个吗:

用JavaScript编写:

your_array = JSON.stringify(your_array);
在PHP中:

$array = json_encode($_POST['array']);
您可以尝试使用:

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

尝试删除datatype=json并在隐藏元素中传递数组一次,然后提交您应该获得数组值的表单——一旦检查并告知我们,当您使用FormData时,您需要设置contentType:false和processData:false!!您是否已经这样做了?可能重复:我是否需要将我想要发送的所有内容都放入dataSend数组?@user1842842是的,您可以将所有数据放入数组dataSend中,并用php详细说明数据。看看编辑。