使用带有Ajax请求的嵌套表创建新行 [英] Create new row with nested tables with Ajax request
问题描述
我正在尝试与此类似的功能: 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屋!