在HTML中,我有:
<input name="feature[1]" value="1" type="hidden">
<input name="feature[2]" value="1" type="hidden">
<input name="feature[3]" value="1" type="hidden">
在Javascript中,我有:
features = $.map($('#add-place [name^="feature"]'), function(item, index)
{
if($(item).val()=='1')
{
return $(item).attr('name').replace(/[^0-9]/g, '');
}
});
当我使用console.log(features)
时,它返回一个数组,但是当我在PHP中使用new FormData
通过ajax发送它时,我会有一个包含features
数组中数字的字符串,所以如果它们是[1, 3]
,我就会在PHP中将1,3
作为字符串。
这是什么原因造成的?
编辑
form = new FormData();
features = $.map($('[name^="feature"]'), function(item, index){if($(item).val()=='1'){return $(item).attr('name').replace(/[^0-9]/g, '');}});
form.append('features', features);
$.ajax({
url: url,
type: 'POST',
dataType: 'json',
enctype: 'multipart/form-data',
cache: false,
processData: false,
contentType: false,
data: form,
complete: function(response)
{
//
}
});
发布于 2018-06-27 07:09:48
尝试在ajax查询中将processData设置为false:
$.ajax({
url: '',
data: formData,
processData: false
});
https://stackoverflow.com/questions/51046763
复制相似问题