从JS发送数组到PHP?

时间:2013-09-25 16:34:14

标签: javascript php

$("#gallery li.gallery-image-item:not(:first)").each(function() {    
     formData.append('gallery[]', {file: 'file', comment: 'comment', youTube: 'youtube'});
 });

我使用formData和XMLHttpRequest将数据从js发送到php。

问题是以上转储为字符串:

string(15) "[object Object]"

当我循环时:

 foreach($input['gallery'] as $galleryImg) {

        var_dump(($galleryImg));

}

如何以阵列形式访问它?我已尝试过json.stringify和json decode + json decode,在php端是真的。

没有运气。

1 个答案:

答案 0 :(得分:0)

正如@minitech所说,append()不是数组上的函数。如果要向数组添加项,则需要使用push()函数。然后你需要对你的数组进行字符串化,以便它可以发布到你的PHP中。这样的事情应该有效:

JavaScript的:

var gallery = [];
$("#gallery li.gallery-image-item:not(:first)").each(function() {    
 gallery.push({file: 'file', comment: 'comment', youTube: 'youtube'});
 });

    $.ajax({
            type: "POST",
            contentType: "application/json; charset=utf-8",
            url: "jsonUrl",
            data: {gallery : JSON.stringify(gallery)},
            success : function(data){
                alert(data);
            }
        });

PHP:

var_dump(json_decode($galleryImg));