我在服务器端处理中使用jquery数据表。我尝试在php中为我的全局过滤器实现一个函数:
当且仅当:
时,功能才会显示所有行 - >两个单词都在同一列AND 在同一行中
OR
- >两个单词都在不同的列中,并且位于同一行
所以..如果我在全局过滤器上键入floor free
或floor free
,它应该始终返回SAME查询。
您可以在此处测试全局过滤器:EXAMPLE
但不幸的是这个jquery表没有从MySQL加载数据所以我需要在php(服务器端)中复制它
对于服务器端处理,Global Filter的相关php代码是:
static function filter ( $request, $columns, &$bindings )
{
$globalSearch = array();
$columnSearch = array();
$dtColumns = self::pluck( $columns, 'dt' );
if ( isset($request['search']) && $request['search']['value'] != '' ) {
$str = $request['search']['value'];
for ( $i=0, $ien=count($request['columns']) ; $i<$ien ; $i++ ) {
$requestColumn = $request['columns'][$i];
$columnIdx = array_search( $requestColumn['data'], $dtColumns );
$column = $columns[ $columnIdx ];
if ( $requestColumn['searchable'] == 'true' ) {
$binding = self::bind( $bindings, '%'.$str.'%', PDO::PARAM_STR );
//$globalSearch[] = "match(".$column['db'].") against (".$binding.")";
$globalSearch[] = "`".$column['db']."` LIKE ".$binding;
}
}
}