【问题标题】:Send jQuery constructed array through jQuery ajax to PHP通过 jQuery ajax 将 jQuery 构造的数组发送到 PHP
【发布时间】:2012-09-25 04:35:26
【问题描述】:

我似乎无法让这个对象通过 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 jquery ajax arrays object


    【解决方案1】:

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

    data: {photoDescriptions: JSON.stringify(photoDescriptions)},
    

    然后,在您的 PHP 代码中:

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

    【讨论】:

    • 糟糕,我刚刚意识到我的文件目录有点偏离,所以不管我有什么,它似乎都不起作用——因为它不是!也感谢您的帮助
    • 实际上,似乎没有任何东西被发送到 PHP。字符串为空
    • 更新了代码。通过http传递的数据必须进行编码,如果将数据作为对象传递,jQuery会自动进行编码,否则您必须使用encodeURIComponent对字符串进行编码。
    【解决方案2】:

    首先要做的事情:AJAX 调用的“数据”属性需要是一个对象,就像 timidboy 说的那样。

    两个快速的健全性检查:

    console.log(photosJSON);
    

    就在 .each() 结束之后,并且

    var_dump($_POST);
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-10-10
      • 1970-01-01
      • 2013-01-09
      • 1970-01-01
      • 1970-01-01
      • 2017-03-14
      • 2021-12-31
      相关资源
      最近更新 更多