请问有没有办法在初始化时过滤datatable服务端?
我试过这样的代码:
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
= 'some value' ANDcolumn_2
LIKE '%another value%' GROUP BYcolumn_3
"
一个很好的例子在这个链接中:DataTables server-side processing example
您可以在哪里修改这部分:
/* 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 并由其解析。
关于javascript - 如何在初始化时过滤 jquery 数据表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18566410/