我在 datatable (ZIP-File)中的过滤器/搜索框有一些问题。它忽略了像ä或ü这样的Umlauts,我认为每个"特殊"字符都很重要。我将字符串作为实体存储在数据库中-一般防止此问题。但问题,我猜,是以后处理,因为字符串正确显示在数据表的表。
使用服务器端处理我有可能编码字符串之前(示例/server_side/scripts/server_processing.php)像
array( 'db' => 'Name', 'dt' => 2, 'formatter' => function( $d, $row ) { return html_entity_decode($d, ENT_QUOTES, "UTF-8"); } ),
…但是,不管有没有这个添加,我都无法搜索到提到的字母。因此,可能被推回服务器/数据库以获得结果的过滤器字符串是不正确的。
也许改变ssp.class.php会有所帮助?我已经尝试用htmlentities()包围一些变量,但没有任何运气。
希望你能帮助我?
这个答案与dataTables 1.10.0中的简单server_side/simple.html示例有关:
将这行添加到scripts/server_processing.php的顶部:
$_GET['search']['value']=htmlentities($_GET['search']['value'],ENT_QUOTES,'UTF-8');
这将(希望)将搜索请求转换为存储在数据库中的相同字符串。
ssp.class.php
将根据请求参数构造一个mySql Query。在实际的db-query发生之前进行转换是很重要的。格式化程序将只处理上述查询的结果。因为没有找到任何内容,所以不会格式化任何内容:-)
当然,这只会工作,如果你做一个get请求。如果您使用post作为ajax方法,您需要将$_GET
更改为$_POST
。
到目前为止,这只适用于全局搜索。如果使用单独的列过滤,还需要转换所有的columns[###][search][value]
。
最后,你可能需要玩周围的编码,因为我不确定在编码你的数据库存储数据。