通过 AJAX 提交表单数组
Posted
技术标签:
【中文标题】通过 AJAX 提交表单数组【英文标题】:Submit Form Array Via AJAX 【发布时间】:2015-07-05 20:49:57 【问题描述】:我有一个表单,我想通过 Ajax 提交,但是其中的一部分包含一个数组。我很难通过 Ajax 传递这个数组。下面是我的 Ajax 示例,我通常会通过它在数据之后的下方传递表单条目数据(一个:$('#one').val()),其中每个字段都有一行.
现在我有了一组新的字段,其中的信息需要作为数组传递。我已经尝试使用 serialize 和 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;
);
谢谢。
【问题讨论】:
尝试删除 datatype=json 并在隐藏元素中传递数组一次并提交您应该获取数组值的表单---一旦检查并让我们知道 使用FormData
时,需要设置contentType:false
和processData: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 提交表单数组的主要内容,如果未能解决你的问题,请参考以下文章