我正在使用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
您有几种选择:
将其转换为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']);
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。