您好,我有带datatables jquery插件的表。我在页脚的index.php中添加了脚本(使用switch加载了页面)以消除重音,因为我想搜索不带变音符号的内容。该脚本在数据库的字段中不起作用,但是当我添加以回显新行时-因此在此行中一切正常。
这是我的正文代码的一部分:
$stmt = sqlsrv_query( $conn, $sql );
if( $stmt === false) {
die( print_r( sqlsrv_errors(), true) );
}
echo "<div class='container'>
<h5>Heading</h5>
<table id='tabulka_kariet' class='table table-bordered'>
<thead>
<tr>
<th>Kód karty</th>
<th>Názov karty</th>
<th>Špec 1 </th>
<th>Špec 2 </th>
<th>Špec 3 </th>
<th>Špec 4 </th>
</tr>
</thead>
<tfoot>
<tr>
<th>Kód karty</th>
<th>Názov karty</th>
<th>Špec 1 </th>
<th>Špec 2 </th>
<th>Špec 3 </th>
<th>Špec 4 </th>
</tr>
</tfoot>
<tbody>
<tr>
<td>mála</td>
<td>očivá</td>
<td>lólo</td>
<td>šesť</td>
<td>nedeľa</td>
<td>ľščťžýáíé</td>
</tr>";
while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC) ) {
echo "<tr>";
echo "<td>" . $row['Code'] . "</td>";
echo "<td><a href=\"detail.php?id=" . $row['Id'] . " \">" . $row['Name'] . "</td>";
echo "<td>" . $row['Specification'] . "</td>";
echo "<td>" . $row['Specification2'] . "</td>";
echo "<td>" . $row['Specification3'] . "</td>";
echo "<td>" . $row['Specification4'] . "</td>";
echo "</tr>";
}
echo "</tbody></table>";
sqlsrv_free_stmt( $stmt);
?>
这是页脚中的脚本:
<script>
$(document).ready( function () {
jQuery.fn.DataTable.ext.type.search.string = function ( data ) {
return ! data ?
'' :
typeof data === 'string' ?
data
.replace( /έ/g, 'ε' )
.replace( /[ύϋΰ]/g, 'υ' )
.replace( /ό/g, 'ο' )
.replace( /ώ/g, 'ω' )
.replace( /ά/g, 'α' )
.replace( /[ίϊΐ]/g, 'ι' )
.replace( /ή/g, 'η' )
.replace( /\n/g, ' ' )
.replace( /[áàäâ]/g, 'a' )
.replace( /[éÉěĚèêëÈÊË]/g, 'e')
.replace( /[íìïî]/g, 'i' )
.replace( /[óòöô]/g, 'o' )
.replace( /[ùüûúÚůŮ]/g, 'u' )
.replace( /[ľĽ]/g, 'l')
.replace( /[šŠ]/g, 's')
.replace( /[čČçÇ]/g, 'c')
.replace( /[řŘ]/g, 'r')
.replace( /[ťŤ]/g, 't')
.replace( /[žŽ]/g, 'z')
.replace( /[ýÝ]/g, 'y')
.replace( /[ďĎ]/g, 'd')
.replace( /[ňŇ]/g, 'n') :
data;
};
var table = $('#tabulka_kariet').DataTable();
} );
</script>
2.问题是,该脚本在带空格的空字段中不起作用。因此,在该列中,此搜索无效。也许会有问题,所以问题是如何防止DB ...?在每个字段中使用if条件吗?有关此问题的更多信息here
几天前与我相似的question
感谢您的回答:)
最佳答案
我回答了另一个问题,但我也在这里写下了答案。
为了解决口音中和插件的问题,我将添加到jQuery.fn.DataTable.ext.type.search.string
的相同方法添加到jQuery.fn.DataTable.ext.type.search.html
。
您可以在这里看到:https://jsfiddle.net/ghsmaniotto/24n05tas/
我按照https://github.com/DataTables/Plugins/blob/master/filtering/type-based/accent-neutralise.js
关于php - 数据表中的重音中和后如何在数据库中进行jQuery搜索-不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46665426/