数组添加进formdata,追加数组FORMDATA和发送通过AJAX

I'm using ajax to submit a multipart form with array, text fields and files.

I append each VAR to the main data as so

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);

than I use the ajax function to send it to a PHP file to store inside sql DB.

$.ajax({

type: "post",

url: 'php/submittionform.php',

cache: false,

processData: false,

contentType: false,

data: data,

success: function(request) {$('#box').html(request); }

})

But on the PHP side, the arr variable, which is an array appears as a string.

When I don't send it with ajax as Form data but use the simple $.POST option I do get it as an array on the PHP side, but then I can't send the files as well.

any solutions?

解决方案

You can do 2 things:

1. Convert it to a JSON string, then parse it in PHP (recommended)

JS

var json_arr = JSON.stringify(arr);

PHP

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

2. Serialize the data with, then deserialize in PHP

JS

// Use or any other delimiter you want

var serial_arr = arr.join("");

PHP

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值