如何从我的.each函数序列化我的结果?

时间:2015-11-01 23:49:29

标签: jquery ajax serialization

我一直在寻找解决问题的答案。我不确定我是否正在寻找合适的方法,但无论如何都要进行。

我想序列化我得到的结果:

$('div.text').each(function () {
   console.log($(this).attr('name') + ": " + $(this).text());
});

并将其序列化为我的ajax:

$.ajax({
    type: 'POST',
    url: 'send-exec.php',
    data: string,
    success: function (data) {
        if (data === 'success') {
            console.log('success');
        } else {
            console.log('fail');
        }
    }
});

我在控制台中获得的信息完全正确,但我不知道如何将其序列化并使用POST功能。

2 个答案:

答案 0 :(得分:1)

我建议创建一个对象,而不必担心自己序列化字符串。

序列化中的错误是:应该是=,您需要添加&来分隔每个。

将对象传递给$ .ajax中的data更方便,jQuery将为您序列化

var post_data ={};
$('div.text').each(function () {
   post_data[$(this).attr('name')] = $(this).text();
});

$.ajax({
    type: 'POST',
    url: 'send-exec.php',
    data: post_data,
    ....
})

答案 1 :(得分:0)

可能最好创建一个对象并填充循环内的对象。

var data = {};   <!-- create object

$('div.text').each(function () {
    data[$(this).attr('name')] = $(this).text();
}

然后你可以将对象添加到你的AJAX并发送它。

$.ajax({
    type: 'POST',
    url: 'send-exec.php',
    data: data,
    success: function (data) {
        if (data === 'success') {
            console.log('success');
        } else {
            console.log('fail');
        }
    }
});