开发者社区> 问答> 正文

将数组追加到FormData并通过AJAX发送

我正在使用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端将它作为一个数组获取,但是后来我也无法发送文件。

有什么解决方案吗?我正在使用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端将它作为一个数组获取,但是后来我也无法发送文件。

有什么解决方案吗?我正在使用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端将它作为一个数组获取,但是后来我也无法发送文件。

有什么解决方案吗? 问题来源于stack overflow

展开
收起
保持可爱mmm 2020-02-08 11:57:16 825 0
1 条回答
写回答
取消 提交回答
  • 您有几种选择:

    将其转换为JSON字符串,然后在PHP中解析(推荐) JS

    var json_arr = JSON.stringify(arr); 的PHP

    $arr = json_decode($_POST['arr']); 或使用@Curios的方法 通过发送数组FormData。

    不建议使用:序列化数据,然后在PHP中反序列化 JS

    // Use <#> or any other delimiter you want var serial_arr = arr.join("<#>"); 的PHP

    $arr = explode("<#>", $_POST['arr']);

    2020-02-08 11:57:34
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载