Расширенный поиск в таблицах данных с использованием PHP - PullRequest
0 голосов
/ 27 сентября 2018

Я создал таблицу данных, используя следующие коды: -

main.php - он содержит скрипт для вызова таблицы данных и скрипт php, который извлекает данные из базы данных sql

<!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: -

<?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));?>

Теперь я должен применить раздел расширенной фильтрации над таблицей данных, который можетбыть формой, состоящей из следующих полей - ввода имени, ввода диапазона возраста и поля ввода выбора пола.А при отправке этой формы соответствующий результат поиска должен отображаться в таблице данных.

1 Ответ

0 голосов
/ 27 сентября 2018

Позвольте мне привести пример поиска по имени, который вы можете сделать так же и для другого поля поиска.

добавить ниже тег ввода в ваш 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>

на стороне сервера, вы получите параметр user_name в $ _GET, например, $ _GET ['user_name'].затем вы можете использовать это значение в своем sql-запросе с подобным.

Таким же образом вы можете реализовать возрастной диапазон и выбор пола.

...