我已经使用以下代码创建了数据表:-
main.php-它包含用于调用数据表的脚本和正在从sql数据库中获取数据的php脚本
<!DOCTYPE html>
<html>
<head>
<title>Data Table | Server Side | Basic | Zero Level</title>
</head>
<link rel="stylesheet" type="text/css" href="//cdn.datatables.net/1.10.19/css/jquery.dataTables.min.css">
<body>
<table id="example" class="display" style="width:100%">
<thead>
<tr>
<th>Name</th><th>Gender</th><th>Age</th>
</tr>
</thead>
<tfoot>
<tr>
<th>Name</th><th>Gender</th><th>Age</th>
</tr>
</tfoot>
</table>
</body>
<script type="text/javascript" src="https://code.jquery.com/jquery-3.3.1.js"></script>
<script type="text/javascript" src="//cdn.datatables.net/1.10.19/js/jquery.dataTables.min.js"></script>
<script type="text/javascript" src="https://cdn.datatables.net/buttons/1.5.2/js/dataTables.buttons.min.js"></script>
<script type="text/javascript" src="https://cdn.datatables.net/buttons/1.5.2/js/buttons.flash.min.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jszip/3.1.3/jszip.min.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.36/pdfmake.min.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.36/vfs_fonts.js"></script>
<script type="text/javascript" src="https://cdn.datatables.net/buttons/1.5.2/js/buttons.html5.min.js"></script>
<script type="text/javascript" src="https://cdn.datatables.net/buttons/1.5.2/js/buttons.print.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$('#example').DataTable( {
dom: 'Bfrtip',
buttons: [
'copy', 'csv', 'excel', 'pdf', 'print'
],
"bProcessing": true,
"sAjaxSource": "dtServerSideBasicScript.php",
"aoColumns": [{
mData: 'name','gender','age'
}]
} );
} );
</script>
</html>
和dtServerSideBasicScript.php-这是从sql server提取数据的脚本:-
<?php
header('Content-Type: application/json');
$con = mysqli_connect("localhost","root","","work");
$sql = "SELECT name,gender,age from test ";
$r = mysqli_query($con,$sql);
$result = array();
while($row = mysqli_fetch_array($r)){
array_push($result,array(
"name"=>$row['name'],"gender"=>$row['gender'],"age"=>$row['age']
));
}
echo json_encode(array('data'=>$result));?>
现在,我必须在数据表上方应用高级过滤器部分,该表可以是包含以下字段的形式-名称输入,年龄范围输入和性别选择输入字段。提交此表格后,相关的搜索结果应显示在数据表中。
答案 0 :(得分:0)
让我给您提供按名称搜索的示例,您也可以对其他搜索字段进行同样的操作。
在搜索字段的html中的输入标签下方添加
<input type="text" name="user_name" id="user_name" />
现在按照以下说明更改脚本,
<script type="text/javascript">
$(document).ready(function() {
var table=$('#example').DataTable( {
dom: 'Bfrtip',
buttons: [
'copy', 'csv', 'excel', 'pdf', 'print'
],
"bProcessing": true,
"ajax": {
url: "dtServerSideBasicScript.php",
data: function (d) {
d.user_name = function () {
return $("#user_name").val();
};
},
},
"aoColumns": [{
mData: 'name','gender','age'
}]
} );
$('#user_name').keyup(function () {
table.draw();
});
});
</script>
在服务器端,您将在$ _GET中获得user_name参数,例如$ _GET ['user_name']。那么您可以在SQL查询中使用like来使用该值。
以同样的方式实现年龄范围和性别选择。