Php DataTables自定义搜索栏问题
最近创建了一个网站并实现了datatables。我成功地创建了一个自定义搜索栏,但当我搜索它时,它一直说“没有找到匹配的记录”,但它有mysql上的数据,我不知道是什么问题。我什么都试过了,它总是说“找不到匹配的记录”Php DataTables自定义搜索栏问题,php,jquery,datatables,Php,Jquery,Datatables,最近创建了一个网站并实现了datatables。我成功地创建了一个自定义搜索栏,但当我搜索它时,它一直说“没有找到匹配的记录”,但它有mysql上的数据,我不知道是什么问题。我什么都试过了,它总是说“找不到匹配的记录” $(文档).ready(函数(){ 变量表=$('#示例')。数据表({ 多姆:“t” }); $('input.column_filter')。打开('keyup click',函数(){ 过滤柱(0); 函数过滤器列(i){ $('#示例').DataTable().col
$(文档).ready(函数(){
变量表=$('#示例')。数据表({
多姆:“t”
});
$('input.column_filter')。打开('keyup click',函数(){
过滤柱(0);
函数过滤器列(i){
$('#示例').DataTable().column(i).search(
$('col0_search').val()
).draw();
}
} );
} );
HTML:
<p>
<input type="text" class="column_filter" id="col0_search" size="30">
</p>
<div class="col-md-7 tickets" style="padding: 15px;">
<h1>Header</h1>
<div class="tickets-wrapper">
<table id= "example" class="tickets">
<thead>
<th>***</th>
<th>***</th>
<th>***</th>
<th>***</th>
<th>***</th>
</thead>
<?php
$con=mysqli_connect("***","***","***","***");
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$result = mysqli_query($con,"SELECT * FROM `***` ORDER BY *** DESC");
while($row = mysqli_fetch_array($result))
{
$count = $row['***'];
echo "<tr>";
echo "<td><small>" . $row['***'] . "</small></td>";
echo "<td><small>" . number_format($row['***']) . "</small></td>";
echo "<td><small>" . $row['***'] . "</small></td>";
echo "<td><small>" . $row['***'] . "</small></td>";
echo "</tr>";
}
mysqli_close($con);
?>
</table>
</div>
</div>
标题
***
***
***
***
***
初始化数据表并将其保存到var表中。因此,在搜索时,应该引用该对象
是一个提琴/德普的例子
因此,请给出以下HTML:
<label>Search Browser column: </label><input type="text" id="search">
<div id="dialog" title="Stuff">
<p></p>
</div>
<table id="dataTable">
<thead>
<tr>
<th>Rendering engine</th>
<th>Browser</th>
<th>Platform(s)</th>
<th>Engine version</th>
<th>CSS grade</th>
</tr>
</thead>
<tbody>
<tr>
<td>Trident</td>
<td>Internet Explorer 4.0</td>
<td>Win 95+</td>
<td> 4</td>
<td>X</td>
</tr>
<tr>
<td>Trident</td>
<td>Chrome</td>
<td>Win 95+</td>
<td> 4</td>
<td>C</td>
</tr>
<tr>
<td>Trident</td>
<td>Chrome</td>
<td>Win 10</td>
<td> 4</td>
<td>A</td>
</tr>
</tbody>
</table>
按照配置datatable的方式,搜索将过滤列。它与SQL无关。另外,您已经声明/init您的datatable并将实例保存到var table
,因此在搜索列时,应该使用:table.column(i).search(…
,因为它引用了您分配给var table
的实例。我还建议您console.log($('col0\u search').val())
为了验证它是否具有您期望的值以及事件是否触发,您为什么不使用内置搜索?您的代码中没有任何明显的内容来解释为什么需要自定义筛选器。
<label>Search Browser column: </label><input type="text" id="search">
<div id="dialog" title="Stuff">
<p></p>
</div>
<table id="dataTable">
<thead>
<tr>
<th>Rendering engine</th>
<th>Browser</th>
<th>Platform(s)</th>
<th>Engine version</th>
<th>CSS grade</th>
</tr>
</thead>
<tbody>
<tr>
<td>Trident</td>
<td>Internet Explorer 4.0</td>
<td>Win 95+</td>
<td> 4</td>
<td>X</td>
</tr>
<tr>
<td>Trident</td>
<td>Chrome</td>
<td>Win 95+</td>
<td> 4</td>
<td>C</td>
</tr>
<tr>
<td>Trident</td>
<td>Chrome</td>
<td>Win 10</td>
<td> 4</td>
<td>A</td>
</tr>
</tbody>
</table>
var myTable = $('#dataTable').DataTable({
dom: 't'
});
$('#search').on('keyup click', function() {
//we can use $(this) because we want the value in the textbox and the event is bound to that textbox
//datatables column index starts at 0 so the second column is index 1
myTable.column(1).search($(this).val()).draw();
});