jquery - 让数据表搜索column.render值而不是从服务器返回的值

标签 jquery datatables datatables-1.10

正在对数据表使用服务器端处理,返回的值之一是 01 不希望数据表搜索或过滤这些值,所以我这样做在数据表中。

  {"data":"Cycle.type", "targets":3, "render": function (data,type,full,meta) {
           return data == '0' ?'<td> Planning</td>' : '<td>Realization</td>';
   }}

似乎数据表仍然搜索服务器端返回的值,但我希望它搜索上面渲染函数返回的值。有一些 html,但我主要对 Html 标签中的值感兴趣。我怎样才能实现这个目标?

最佳答案

由于您使用的是服务器端处理,因此搜索和排序也必须在服务器端完成。

如果您使用 PHP,则可以使用 download DataTables library 时可用的 ssp.class.php .

使用ssp.class.php,您可以使用以下技巧和子查询来使数字字段可搜索。下面显示的只是一个简单的示例。

<?php

$table = <<<EOT
 (
    SELECT 
       field1, 
       field2, 
       (CASE WHEN type=0 THEN 'Planning' ELSE 'Realization' END) AS type
    FROM table
 ) temp
EOT;

$primaryKey = 'id';

$columns = array(
    array( 'db' => 'field1',  'dt' => 'field1' ),
    array( 'db' => 'field2',  'dt' => 'field2' ),
    array( 'db' => 'type',    'dt' => 'type' )
);

// SQL server connection information
$sql_details = array(
    'user' => '',
    'pass' => '',
    'db'   => '',
    'host' => ''
);

require( 'ssp.class.php' );

echo json_encode(
    SSP::simple( $_GET, $sql_details, $table, $primaryKey, $columns )
);
?>

要使用该技巧,您还需要编辑 ssp.class.php 并将 FROM `$table` 的所有实例替换为 FROM $table 删除反引号。

关于jquery - 让数据表搜索column.render值而不是从服务器返回的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30590536/

相关文章:

javascript - 如何将多列数据渲染到一列中?

javascript - 使用 jquery onclick 和 mouseup 事件检测长按时如何修复多次执行

javascript - 如何让我的 jQuery 函数适用于 foreach 循环内的每个元素?

javascript - 数据表: How to show the show Entries dropdown beside the Showing 0 to 0 of 0 entries in the table structure

javascript - 使用父列作为子行的 DataTables 行详细信息

html - 同一行中的两个 div 元素

json - 数据表:标题中带点 (.) 的列显示不正确

jquery - Django 使用 Fetch 对 POST 请求返回 403 错误

javascript - 从该窗口本身控制浏览器窗口(顶部窗口而不是弹出窗口)的高度和宽度

javascript - 如何在javascript函数中接收ajax调用的POST数据