簡體   English   中英

如何在初始化時過濾jquery數據表

[英]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_1column_2column_3 WHERE column_1 ='某些值'AND column_2喜歡'%另一個值%'GROUP BY column_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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM