我认为这会被标记为重复,但我无法理解我的问题。
我使用in循环创建了javascript数组,控制台中的数组是
["about.png", "about1.png", "about2.png"]
我想将此传递给php,所以我使用JSON.stringify(filenames);
将其转换为json字符串我也包含了json2.js但在解码之前结果在控制台中相同..
["about.png","about1.png","about2.png"]
比我解码它$filenames = json_decode($_POST['jsonfilenames']);
但文件名数组是空的。我做错了什么?
我将能够将php中的javascript数组作为php数组获取,这是JSON.stringify的作用吗?
更新
我正在使用uploadify上传文件以获取文件名和文件路径我想创建文件名和文件路径数组,而onAllComplete函数将这些数组传递给php scirpt ...而不是通过电子邮件发送给上传文件名和文件路径的文件的用户在电子邮件....
var filenames = [];
var filepaths = [];
$('#file_upload').uploadify({
'uploader' : 'uploadify/uploadify.swf',
'script' : 'uploadify/uploadify.php',
'cancelImg' : 'uploadify/cancel.png',
'folder' : 'user_data/<?=$_SESSION['username']?>',
'auto' : false,
'multi' :true,
'onComplete' : function(event, queueID, fileObj, response, data) {
filenames.push(fileObj.name);
filepaths.push(fileObj.filePath);
},
'onAllComplete':function(event,data) {
console.log(filenames);
var jsonfilenames = JSON.stringify(filenames);
var jsonfilepaths = JSON.stringify(filepaths);
console.log(jsonfilenames);
//ajax stuff
},
//...
});
答案 0 :(得分:0)
您的输入可能已被magic quotes损坏
要“解决”这个问题,您可以使用stripslashes()
,即:
$filenames = json_decode(stripslashes($_POST['jsonfilenames']));
但由于魔术引号是不推荐使用的功能,因此您应该禁用它。