0
$('#saveplaylist').click(function () { 
                var length = $(' .organizer-media').length;
                var contents=$(' .organizer-media');
                var data = null;
                for (var i = 0; i < length; i++) {
                    data[i] = contents[i].title;
                }
                $.ajax({
                    type: 'POST',
                    data: JSON.stringify(data),
                    url: '/Builder/Save',
                    success: function () {
                        alert("Playlist saved successfully!!");
                    }
                })
            })

如上面在我的代码中所示,我无法通过使用 for 循环填充数据数组来发送我的值如何创建数据数组并通过 AJAX 发布它?

4

4 回答 4

3

您必须将变量初始化为数组,而不是null.

var data = [];
于 2013-04-27T06:15:07.037 回答
1

除了 Barmar 所说的,您需要将 ajax 调用的内容类型设置为 JSON

$.ajax({
                    type: 'POST',
                    data: JSON.stringify(data),
                    contentType: "application/json; charset=utf-8",
                    url: '/Builder/Save',
                    success: function () {
                        alert("Playlist saved successfully!!");
                    }
                })
于 2013-04-27T06:17:02.550 回答
1

' .organizer-media'从和中删除空间' .organizer-media'

和改变

var data = null;

var data = new Array();
于 2013-04-27T06:17:21.907 回答
0

您可以使用$.param() 方法代替 JSON.stringify()

$('#saveplaylist').click(function () { 
    var length = $(' .organizer-media').length;
    var contents=$(' .organizer-media');
    var data = null;
    for (var i = 0; i < length; i++) {
        data[i] = contents[i].title;
    }
    $.ajax({
        type: 'POST',
        data: $.param({data: data}),
        url: '/Builder/Save',
        success: function () {
            alert("Playlist saved successfully!!");
        }
    });
});

这会将内容标题存储为数据数组的成员,您应该能够访问服务器端。

在 Rails 中,您可以这样访问:

titles = params[:data]

在 PHP 中,它可能类似于:

$titles = $_POST["data"];

编辑:

正如上面提到的 Barmar,我错过了一件事情,您需要将数据初始化为一个空数组,而不是 null。

于 2013-04-27T06:30:20.690 回答