0

我发现了很多关于这个的帖子,但对我来说没有:(

我正在使用 Jquery-Plugin DataTable,并且我在一个表单中有很多表(但我不知道有多少)。

我应该从插件中获取表单数据:

objDataTables.each(function(index){
    dtArray[$(this).attr('id')] = $('input', $(this).fnGetNodes()).serialize();
});

我如何将dtArray发送到服务器,$.ajax 因为我试图创建一个对象dtArray = {},但它仍然无法正常工作。postdata每次都是一个空字符串。

任何人有一个想法为什么或如何?

谢谢。

注意:我不使用JSON.stringify(...)

4

2 回答 2

0

我明白了:) 创建一个对象而不是数组。注意:不要序列化对象。如果其他人有同样的情况......我的解决方案

var tData = {};
for(var index in dtArray){
    tData[index] = $('input', dtArray[index].fnGetNodes()).serialize();
};

在阿贾克斯:

$.ajax({
    url: 'ajax.php',
    type: "POST",
    dataType: "json",
    timeout: 4000,
    data: { func: "ajax", formData: tData },
    success: function(data, textStatus, jqXHR){
        // to do
    },
    error: function(jqXHR, textStatus, errorThrown){
        // to do
    }
});
于 2013-09-13T10:29:41.987 回答
0

您确定要发送的数据在 input 或 textarea 标签中吗?serialize 函数不会收集其他元素,例如表格。

如果数据不在 input 或 textarea 字段中,但您仍想收集它,那么您将不得不遍历所有行和列。

于 2013-09-13T09:48:33.220 回答