[英]How do I filter jquery datatables in initialization
我想問一下是否有一種方法可以在初始化服務器端過濾數據表?
我試過的代碼是這樣的:
function listTable(arg1, param2, value3) {
var searchTbl = $("#tblsearch").dataTable({
"bRetrieve": true,
"bProcessing": true,
"bServerSide": true,
"sAjaxSource": "server-side.php",
"bPaginate": false,
"bLengthChange": false,
"bFilter": false,
"bSort": true,
"bInfo": false,
"bAutoWidth": false
});
searchTbl.filter(arg1, param2, value3);
searchTbl.fnDraw();
}
但它沒有用。
敬禮,
據我了解。 您正在嘗試從服務器端server-side.php
腳本中過濾記錄以顯示在jquery dataTables上。
僅當您可以提供您的server-side.php
腳本示例時,它才有效。
但是,為了向您提供更好的理解和輸入,所需的過濾器將全部取決於正在服務器端腳本上執行的數據庫查詢。 例如:
“ SELECT
column_1
,column_2
,column_3
WHEREcolumn_1
='某些值'ANDcolumn_2
喜歡'%另一個值%'GROUP BYcolumn_3
”
此鏈接中的一個很好的示例: DataTables服務器端處理示例
您可以在其中修改此部分的位置:
/* Individual column filtering */
for ( $i=0 ; $i<count($aColumns) ; $i++ )
{
if ( isset($_GET['bSearchable_'.$i]) && $_GET['bSearchable_'.$i] == "true" && $_GET['sSearch_'.$i] != '' )
{
if ( $sWhere == "" )
{
$sWhere = "WHERE ";
}
else
{
$sWhere .= " AND ";
}
$sWhere .= "`".$aColumns[$i]."` LIKE '%".mysql_real_escape_string($_GET['sSearch_'.$i])."%' ";
}
}
並且以這種方式,將構成您的json輸出以傳遞給jquery dataTable並由jparse dataTable解析的數據進行過濾。
您是否正在嘗試搜索表中的數據? 如果是這樣的話下面的部分
function doSearch() {
var searchText = document.getElementById('searchTerm').value;
var targetTable = document.getElementById('mytable');
var targetTableColCount;
//Loop through table rows
for (var rowIndex = 0; rowIndex < targetTable.rows.length; rowIndex++) {
var rowData = '';
//Get column count from header row
if (rowIndex == 0) {
targetTableColCount = targetTable.rows.item(rowIndex).cells.length;
continue; //do not execute further code for header row.
}
//Process data rows. (rowIndex >= 1)
for (var colIndex = 0; colIndex < targetTableColCount; colIndex++) {
var cellText = '';
if (navigator.appName == 'Microsoft Internet Explorer')
cellText = targetTable.rows.item(rowIndex).cells.item(colIndex).innerText;
else
cellText = targetTable.rows.item(rowIndex).cells.item(colIndex).textContent;
rowData += cellText;
}
//If search term is not found in row data
//then hide the row, else show
if (rowData.indexOf(searchText) == -1)
targetTable.rows.item(rowIndex).style.display = 'none';
else
targetTable.rows.item(rowIndex).style.display = 'table-row';
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.