我正在使用 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); }
})
但在 PHP 端,作为数组的 arr
变量显示为字符串。
当我不使用 ajax 作为表单数据发送它而是使用简单的 $.POST
选项时,我确实将它作为 PHP 端的数组获取,但是我也无法发送文件。
任何解决方案?
原文由 shultz 发布,翻译遵循 CC BY-SA 4.0 许可协议
你有几个选择:
将其转换为 JSON 字符串,然后在 PHP 中解析(推荐)
JS
PHP
或者使用 @Curios 的方法
通过
FormData
发送数组。不推荐:使用序列化数据,然后在 PHP 中反序列化
JS
PHP