我有一个REST Api命令,它在里面获得一个MYSQL查询并执行它,所以现在我请求一个select并把它放在表上,表将转换为Datatables。问题开始是因为我不想一次性获取整个数据所以我应该执行MYSQL查询,每次限制例如10条记录,我需要一个适合它的分页,我需要的另一件事是从db而不是dom搜索的搜索功能。
function getnames() {
var Group = $("#traderGroup").val();
var Sql = "select NAME,LOGIN,EMAIL from users";
getNames = {"Sql":Sql};
$.ajax({
type: "POST",
url: "https://test.com/api/db/select",
data: JSON.stringify(getNames),
contentType: "application/json; charset=utf-8",
dataType: "json",
processData: true,
success: function (data, status, jqXHR) {
for (var i = 0; i < data.Data.length; i++) {
$("<tr><td align='center'>" + data.Data[i].LOGIN + "</td><td>" + data.Data[i].NAME + "</td><td>" + data.Data[i].EMAIL + "</td></tr>").appendTo("#ajaxResponse3").hide().fadeIn(500);
}
},
error: function (data, status, jqXHR) {
$.ajax({
type: 'POST',
url: apiurl+'Token',
data: loginData
}).done(function(data) {
});
$("<div class='alert alert-danger alert-dismissable'><button type='button' class='close' data-dismiss='alert' aria-hidden='true'>×</button>Something Went Wrong!! Please contact the IT Department.</div>").prependTo("#alert").hide().fadeIn(500);
},
beforeSend : function(xhr){
$('#processing-modal').modal('show');
},
complete : function(){
$('#processing-modal').modal('hide');
table = $('#tablename').dataTable({
responsive: true,
"search": {"smart": true,"regex": true}
});
var tableTools = new $.fn.dataTable.TableTools(table, {
"sButtons": ["copy","csv","xls","pdf",{ "type": "print", "buttonText": "Print me!" } ],
"sSwfPath": "https://datatables.net/release-datatables/extensions/TableTools/swf/copy_csv_xls_pdf.swf"
});
$(tableTools.fnContainer()).insertAfter('div.tabletools h3');
}
});
}
答案 0 :(得分:0)
好像你正在使用ajax填充表然后调用数据表而不是让表通过ajax获取自己的数据?
数据表允许您使用serverside和processing来获取您和您的桌子所需的所有内容......我最近写了my own serverSide script,这非常简单!网站上还有another example,这是一个很好的起点。
对你的问题不是一个真正的答案我害怕除了说如果你想到达那里你或许应该看看从其他地方出发......
的Dom