[File
{ size=295816, type="image/jpeg", name="img_new3.JPG"},
File { size=43457, type="image/jpeg", name="nature.jpg"}
]
这是我从脚本收到的数据,现在我必须通过ajax将文件的大小和名称发送到php文件。
这是我的代码
var files = [];
files["file"] = [];
// file is an object that has the above result
for( var i=0, j=file.length; i<j; i++ ){
console.log( file[i].name );
files["file"][i] = file[i].name;
files["file"][i] = file[i].size;
}
// Send Request to Create ZIP File
console.log(files)
我想访问我的PHP文件的参数:
file(
name=>array(
0=>"name",
1=>"size"
),
size=>array(...)
)
如何创建一个将数据发送到PHP文件的数组,如上所述?
答案 0 :(得分:1)
首先,您必须使用Object
表示法,而不是Array
,然后您可以通过Ajax将其传递给PHP函数。
var files = {};
files["file"] = [];
// file is an object that has the above result
for (var i = 0, j = file.length; i < j; i++ ){
console.log(file[i].name);
files["file"][i] = file[i].name;
}
然后使用带JSON.stringify
的数组将数据传递到PHP脚本,如下所示:
$.ajax({
url: "your url",
type: "POST", //can be get also, depends on request
cache: false, //do you want it to be cached or not?
data: {files: JSON.stringify(files)},
success: function(data) {
//do something with returned data
}
});
无论如何,我建议您更改存储数据的方式。在这种情况下,对象非常有用:
var files = [];
// file is an object that has the above result
for (var i = 0, j = file.length; i < j; i++ ){
console.log(file[i].name);
files.push({
name: file[i].name //you can add all the keys you want
});
}
答案 1 :(得分:0)
你已准备好js数组,所以只需使用jQuery post method将创建的数组发送到php文件,然后按照你想要的方式处理数组。
答案 2 :(得分:0)
您的多维数组可以进行JSON编码,并通过ajax作为字符串发送到PHP脚本,该脚本可以将JSON解码回数组/对象:
// assuming the array is in files var
$.ajax({
url : 'page.php',
type : 'POST',
data : { myFiles : JSON.stringify(files) },
success : function(response){
console.log("successfull");
}
});
在PHP方面:
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
$filesArray = json_decode($_POST['myFiles']);
print_r($filesArray);
}