有没有办法从多个 SQL table 中提取一个数据表 table?
Is there a way to pull from multiple SQL tables for one DataTables table?
我使用 DataTables 在我创建的报告网站中显示数据。我正在创建一个 Report Builder,用户可以在其中 select 多个 table,然后从这些 table 中的列创建自定义报告。
我想知道是否有一种方法可以使用 DataTables 来做到这一点。我能够获得自定义报告的 tables 名称和列名称,但我无法弄清楚如何将其发送到 DataTables。我目前使用服务器端处理并使用 POST
向 DataTable 发送 ajax
调用。
我知道我可以在基于 selected table 和列的 SQL 查询中编程,但我似乎无法弄清楚如何发送数据到数据表。
下面是我如何初始化我的数据表:
$(document).ready(function ()
{
// Setup - add a text input to each footer cell
$('#DataTable tfoot th').each(function () //creates the search bar as the footer
{
var title = $(this).text();
$(this).html('<input type="text" placeholder="Search ' + title + '" />');
});
var table = $('#DataTable').DataTable({
"lengthMenu": [[25, 50, 75, 100, 150, -1], [25, 50, 75, 100, 150, 'All']],
"dom": '<"top"Bifpl<"clear">>rt<"bottom"ip<"clear">>',
"buttons": [{
extend: 'collection',
text: 'Export',
buttons: ['export', { extend: 'csv',
text: 'Export All To CSV', //Export all to CSV file
action: function (e, dt, node, config)
{
window.location.href = './ServerSide.php?ExportToCSV=Yes';
}
}, 'csv', 'pdf', { extend: 'excel',
text: 'Export Current Page', //Export to Excel only the current page and highlight the first row as headers
exportOptions: {
modifier: {
page: 'current'
}
},
customize: function (xlsx)
{
var sheet = xlsx.xl.worksheets['sheet1.xml'];
$('row:first c', sheet).attr('s', '7');
}
}]
}
],
"fixedHeader": { //Keeps the header and footer visiable at all times
header: true,
footer: true
},
"select": true, //sets the ability to select rows
"processing": true, //shows the "Processing" when working
"serverSide": true, //sends data to the server for processing
"ajax": { //where the data is sent and processed
"url": "./ServerSide.php",
"type": "POST"
},
stateSave: true, //Saves the current state of the page
columnDefs: [{ visible: false, targets: 0}], //Hides the first column the ID column
initComplete: function () //sets the search
{
var api = this.api();
// Apply the search
api.columns().every(function ()
{
var that = this;
$('input', this.footer()).on('keyup change', function (e)
{
if (that.search() !== this.value & e.keyCode == 13) //you have to hit enter for the search to start
{
that
.search(this.value)
.draw();
}
});
});
}
});
});
$.fn.dataTable.ext.buttons.export =
{
className: 'buttons-alert', //Adds the "Export all to Excel" button
id: 'ExportButton',
text: "Export All To Excel",
action: function (e, dt, node, config)
{
window.location.href = './ServerSide.php?ExportToExcel=Yes';
}
};
以下是我目前可以开始工作的内容:
我不确定其他人是否需要帮助我,但如果我遗漏了什么,请告诉我,我会添加。
我需要所有 selected table 的所有数据和列都在网站上显示的一个 DataTables table 中。在上图中,我展示了我已经取得了列 headers 并为 table 使用了别名。我正在研究我的 FilterSort.class.pph 文件(类似于 DataTables 中的 ssp.class.php),看看我是否可以让它呈现 table.
我明白了。我仍在调用正确的 DataTables 函数,但我没有将数据传递给函数。我最终不得不更新 ServerSide.php
文件和 FilterSort.class.php
文件。这些是所有其他报告用于将数据从服务器发送到屏幕的报告。经过一些尝试和错误后,我让它工作并且不需要更改我问题中发布的代码中的任何内容。
我使用 DataTables 在我创建的报告网站中显示数据。我正在创建一个 Report Builder,用户可以在其中 select 多个 table,然后从这些 table 中的列创建自定义报告。
我想知道是否有一种方法可以使用 DataTables 来做到这一点。我能够获得自定义报告的 tables 名称和列名称,但我无法弄清楚如何将其发送到 DataTables。我目前使用服务器端处理并使用 POST
向 DataTable 发送 ajax
调用。
我知道我可以在基于 selected table 和列的 SQL 查询中编程,但我似乎无法弄清楚如何发送数据到数据表。
下面是我如何初始化我的数据表:
$(document).ready(function ()
{
// Setup - add a text input to each footer cell
$('#DataTable tfoot th').each(function () //creates the search bar as the footer
{
var title = $(this).text();
$(this).html('<input type="text" placeholder="Search ' + title + '" />');
});
var table = $('#DataTable').DataTable({
"lengthMenu": [[25, 50, 75, 100, 150, -1], [25, 50, 75, 100, 150, 'All']],
"dom": '<"top"Bifpl<"clear">>rt<"bottom"ip<"clear">>',
"buttons": [{
extend: 'collection',
text: 'Export',
buttons: ['export', { extend: 'csv',
text: 'Export All To CSV', //Export all to CSV file
action: function (e, dt, node, config)
{
window.location.href = './ServerSide.php?ExportToCSV=Yes';
}
}, 'csv', 'pdf', { extend: 'excel',
text: 'Export Current Page', //Export to Excel only the current page and highlight the first row as headers
exportOptions: {
modifier: {
page: 'current'
}
},
customize: function (xlsx)
{
var sheet = xlsx.xl.worksheets['sheet1.xml'];
$('row:first c', sheet).attr('s', '7');
}
}]
}
],
"fixedHeader": { //Keeps the header and footer visiable at all times
header: true,
footer: true
},
"select": true, //sets the ability to select rows
"processing": true, //shows the "Processing" when working
"serverSide": true, //sends data to the server for processing
"ajax": { //where the data is sent and processed
"url": "./ServerSide.php",
"type": "POST"
},
stateSave: true, //Saves the current state of the page
columnDefs: [{ visible: false, targets: 0}], //Hides the first column the ID column
initComplete: function () //sets the search
{
var api = this.api();
// Apply the search
api.columns().every(function ()
{
var that = this;
$('input', this.footer()).on('keyup change', function (e)
{
if (that.search() !== this.value & e.keyCode == 13) //you have to hit enter for the search to start
{
that
.search(this.value)
.draw();
}
});
});
}
});
});
$.fn.dataTable.ext.buttons.export =
{
className: 'buttons-alert', //Adds the "Export all to Excel" button
id: 'ExportButton',
text: "Export All To Excel",
action: function (e, dt, node, config)
{
window.location.href = './ServerSide.php?ExportToExcel=Yes';
}
};
以下是我目前可以开始工作的内容:
我不确定其他人是否需要帮助我,但如果我遗漏了什么,请告诉我,我会添加。
我需要所有 selected table 的所有数据和列都在网站上显示的一个 DataTables table 中。在上图中,我展示了我已经取得了列 headers 并为 table 使用了别名。我正在研究我的 FilterSort.class.pph 文件(类似于 DataTables 中的 ssp.class.php),看看我是否可以让它呈现 table.
我明白了。我仍在调用正确的 DataTables 函数,但我没有将数据传递给函数。我最终不得不更新 ServerSide.php
文件和 FilterSort.class.php
文件。这些是所有其他报告用于将数据从服务器发送到屏幕的报告。经过一些尝试和错误后,我让它工作并且不需要更改我问题中发布的代码中的任何内容。