ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

javascript – 将数组附加到FormData并通过AJAX发送

2019-09-18 05:36:25  阅读:210  来源: 互联网

标签:javascript arrays ajax form-data


我正在使用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作为Form数据发送它但使用简单的$.POST选项时,我确实将它作为PHP端的数组,但是我也无法发送文件.

任何解决方案

解决方法:

你有几个选择:

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

JS

var json_arr = JSON.stringify(arr);

PHP

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

或者使用@Curios’s method

通过FormData发送数组.

不推荐:使用PHP序列化数据,然后在PHP中反序列化

JS

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

PHP

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

标签:javascript,arrays,ajax,form-data
来源: https://codeday.me/bug/20190918/1810620.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有