使用带有Ajax请求的嵌套表创建新行 [英] Create new row with nested tables with Ajax request

查看:111
本文介绍了使用带有Ajax请求的嵌套表创建新行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试与此类似的功能: http ://www.datatables.net/release-datatables/examples/api/row_details.html



我的代码唯一的主要区别是我'尝试通过Ajax获取数据,并且它不起作用!



Ajax请求本身是成功的,我可以看到响应中的HTML代码。 / p>

我的JS代码:

  / * Creata TableData 
-------------------------------------------- * /
函数fnFormatDetails(StreetVal,oTable,nTr)
{
var sOut = $ .ajax({
url:ajax.php,
data:StreetVal,
成功:function(data){

console.log(data);
return data;

}
});

return sOut;
}

$(document).ready(function(){


$('。table-data tbody tr td a')。 addClass('closed');

var oTable = $('。table-data')。dataTable({
sPaginationType:full_numbers,
bStateSave :false,
bRetrieve:true
});

$('。table-data tbody tr td a')。live('click',function ){

var StreetVal = $(this).attr('href')。split('#')[1];
var nTr = this.parentNode.parentNode;

if($(this).hasClass('closed')){

$(this).removeClass('closed')。addClass('open').html ' - ');
oTable.fnOpen(nTr,fnFormatDetails(StreetVal,oTable,nTr),'details');

} else {

$这个).removeClass('open')。addClass('closed')。html('+');
oTable.fnClose(nTr);
}

return false ;


});

});

问题是它出现错误:


无法转换JavaScript参数arg 0 [nsIDOMHTMLTableCellElement.appendChild]
[打破此错误] nNewCell.appendChild(mHtml);


在jquery.dataTables.js / v。1.8.3.dev的第1776行

有什么问题?任何建议都非常感激。

解决方案

实际上返回sOut.responseText而不是fnFormatDetails中的sOut似乎有效。


I'm trying to create a similar functionality to this one: http://www.datatables.net/release-datatables/examples/api/row_details.html.

The only major difference to my code is that I'm trying to get the data through Ajax, and it does not work!

The Ajax request itself is made successfuly and I can see the HTML code inside the response.

My JS Code:

/* Creata TableData
--------------------------------------------*/
function fnFormatDetails ( StreetVal, oTable, nTr )
{
    var sOut = $.ajax({
      url: "ajax.php",
      data: StreetVal,
      success: function(data) {

          console.log(data);
          return data;

      }
    });

    return sOut;
}

$(document).ready( function(){


    $('.table-data tbody tr td a').addClass('closed');

    var oTable = $('.table-data').dataTable({ 
        "sPaginationType": "full_numbers", 
        "bStateSave": false, 
        "bRetrieve": true
    });

    $('.table-data tbody tr td a').live('click', function (event) {

        var StreetVal = $(this).attr('href').split('#')[1];
        var nTr = this.parentNode.parentNode;

        if( $(this).hasClass('closed') ) {

            $(this).removeClass('closed').addClass('open').html(' - ');
            oTable.fnOpen( nTr, fnFormatDetails( StreetVal, oTable, nTr ), 'details' );

        } else {

            $(this).removeClass('open').addClass('closed').html(' + ');
            oTable.fnClose( nTr );
        }

        return false;


    });

});

The problem is that it is throwing an error:

Could not convert JavaScript argument arg 0 [nsIDOMHTMLTableCellElement.appendChild] [Break On This Error] nNewCell.appendChild( mHtml );

at line 1776 of jquery.dataTables.js / v. 1.8.3.dev

What is the problem? Any suggestion much appreciated.

解决方案

Actually returning "sOut.responseText" instead of sOut in fnFormatDetails seems to work.

这篇关于使用带有Ajax请求的嵌套表创建新行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆