Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 通过jQueryAjax将jQuery构造的数组发送到PHP_Javascript_Jquery_Ajax_Arrays_Object - Fatal编程技术网

Javascript 通过jQueryAjax将jQuery构造的数组发送到PHP

Javascript 通过jQueryAjax将jQuery构造的数组发送到PHP,javascript,jquery,ajax,arrays,object,Javascript,Jquery,Ajax,Arrays,Object,我似乎无法让这个对象通过jQuery的ajax传递到我的PHP文件 $("body").on("submit", ".upload-results-form", function(){ var photosJSON = []; $(".upload-result-wrapper .upload-results .photos li").each(function(){ var photoID = $(this).attr("rel"); var descri

我似乎无法让这个对象通过jQuery的ajax传递到我的PHP文件

$("body").on("submit", ".upload-results-form", function(){

        var photosJSON = [];

$(".upload-result-wrapper .upload-results .photos li").each(function(){

    var photoID = $(this).attr("rel");
    var description = $(".photo-upload-description", this).val();
    var source = $("img", this).attr("src");

    photosJSON.push({photoID: photoID, description: description, source: source});

});

var jsonData = JSON.stringify(photosJSON);


    $.ajax({
    type: "POST",
    url: "ajax/add/albums/photos_publish.php",
data: "photosJSON="+jsonData,
    cache: false,
    success: function(html){
        alert(html);        
    }
    });

}); 
我的jsonData如下所示:

[{"photoID":"47","description":"","source":"photos/50611a8725cca_224.jpg"},
{"photoID":"48","description":"","source":"photos/50611a8764881_224.jpg"},
{"photoID":"49","description":"","source":"photos/50611a87aa508_224.jpg"},
{"photoID":"50","description":"","source":"photos/50611a88dd34b_224.jpg"}]
和我的php文件:

$photosJSON = json_decode($_POST['photosJSON']);
echo $photosJSON['photoID'];

但是没有返回任何内容,似乎没有向php发送任何内容。

您必须将javascript对象转换为JSON:

data: {photoDescriptions: JSON.stringify(photoDescriptions)},
然后,在PHP代码中:

$photoDescriptions = json_decode($_POST['photoDescriptions']);
首先:AJAX调用的“数据”属性必须是一个对象,正如timidboy所说

两个快速的健康检查:

console.log(photosJSON);
就在.each()结束后,以及


在PHP页面的某个地方。我怀疑,假设您遵循了timidboy的更正,问题不在您的AJAX中。例如,您确定each()迭代的标识符实际上与页面上的DOM元素匹配吗?

Oops,我刚刚意识到我的文件目录有点不正确,所以不管我使用了什么,它看起来都不起作用——因为它不起作用!同样感谢您的帮助,事实上,似乎没有任何东西被发送到PHP。字符串为空,更新代码。通过http传递的数据必须进行编码,如果将数据作为对象传递,jQuery会自动进行编码,否则必须使用
encodeURIComponent
对字符串进行编码。
var_dump($_POST);