将数组追加到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端将它作为数组获得,但是后来我也无法发送文件。

有什么办法吗?

回答:

您有几种选择:

回答:

var json_arr = JSON.stringify(arr);

$arr = json_decode($_POST['arr']);


或使用@Curios的方法

通过发送数组FormData


回答:

// Use <#> or any other delimiter you want

var serial_arr = arr.join("<#>");

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

以上是 将数组追加到FormData并通过AJAX发送 的全部内容, 来源链接: utcz.com/qa/426137.html

回到顶部