我正在使用ajax提交包含数组,文本字段和文件的多部分表单.
我将每个VAR附加到主数据上
var attachments = document.getElementById('files');
var data= new FormData();
for (i=0; i< attachments.files.length; i++){
data.append('file', attachments.files[i]);
console.log(attachments.files[i]);
data.append ('headline', headline);
data.append ('article', article);
data.append ('arr', arr);
data.append ('tag', tag);
然后我使用ajax函数将其发送到PHP文件以存储在sql DB中.
$.ajax({
type: "post",
url: 'PHP/submittionform.PHP',
cache: false,
processData: false,
contentType: false,
data: data,
success: function(request) {$('#Box').html(request); }
})
当我不使用ajax作为Form数据发送它但使用简单的$.POST选项时,我确实将它作为PHP端的数组,但是我也无法发送文件.
任何解决方案
解决方法:
你有几个选择:
将其转换为JSON字符串,然后在PHP中解析(推荐)
JS
var json_arr = JSON.stringify(arr);
$arr = json_decode($_POST['arr']);
或者使用@Curios’s method
通过FormData发送数组.
JS
// Use <#> or any other delimiter you want
var serial_arr = arr.join("<#>");
$arr = explode("<#>", $_POST['arr']);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。