Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- $(document).ready(function() {
- var dataTable = $('#employee-grid').DataTable({
- "lengthMenu": [
- [10, 25, 50, -1],
- [10, 25, 50, "All"]
- ],
- "processing": true,
- "serverSide": true,
- "ajax": {
- url: "employee-grid-data.php", // json datasource
- type: "post", // method , by default get
- error: function() { // error handling
- $(".employee-grid-error").html("");
- $("#employee-grid").append('<tbody class="employee-grid-error"><tr><th colspan="3">No data found in the server</th></tr></tbody>');
- $("#employee-grid_processing").css("display", "none");
- }
- }
- });
- });
- $sql.=" ORDER BY ". $columns[$requestData['order'][0]['column']]." ".$requestData['order'][0]['dir']." LIMIT ".$requestData['start']." ,".$requestData['length']." "; // $requestData['order'][0]['column'] contains colmun index, $requestData['order'][0]['dir'] contains order such as asc/desc , $requestData['start'] contains start row number ,$requestData['length'] contains limit length.
- $query=mysqli_query($conn, $sql) or die("employee-grid-data.php: get employees"); // again run query with limit
- if ($requestData['length']!==-1){
- $sql.=" ORDER BY ". $columns[$requestData['order'][0]['column']]." ".$requestData['order'][0]['dir']." LIMIT ".$requestData['start']." ,".$requestData['length']." ";
- } else {
- $sql.=" ORDER BY ". $columns[$requestData['order'][0]['column']]." ".$requestData['order'][0]['dir']
- }
- $query=mysqli_query($conn, $sql) or die("employee-grid-data.php: get employees");
- <?php
- /* Database connection start */
- $servername = "localhost";
- $username = "root";
- $password = "Password1";
- $dbname = "test";
- $conn = mysqli_connect($servername, $username, $password, $dbname) or die("Connection failed: " . mysqli_connect_error());
- /* Database connection end */
- // storing request (ie, get/post) global array to a variable
- $requestData= $_REQUEST;
- $columns = array(
- // datatable column index => database column name
- 0 =>'employee_name',
- 1 => 'employee_salary',
- 2=> 'employee_age'
- );
- // getting total number records without any search
- $sql = "SELECT employee_name, employee_salary, employee_age ";
- $sql.=" FROM employee";
- $query=mysqli_query($conn, $sql) or die("employee-grid-data.php: get employees");
- $totalData = mysqli_num_rows($query);
- $totalFiltered = $totalData; // when there is no search parameter then total number rows = total number filtered rows.
- if( !empty($requestData['search']['value']) ) {
- // if there is a search parameter
- $sql = "SELECT employee_name, employee_salary, employee_age ";
- $sql.=" FROM employee";
- $sql.=" WHERE employee_name LIKE '".$requestData['search']['value']."%' "; // $requestData['search']['value'] contains search parameter
- $sql.=" OR employee_salary LIKE '".$requestData['search']['value']."%' ";
- $sql.=" OR employee_age LIKE '".$requestData['search']['value']."%' ";
- $query=mysqli_query($conn, $sql) or die("employee-grid-data.php: get employees");
- $totalFiltered = mysqli_num_rows($query); // when there is a search parameter then we have to modify total number filtered rows as per search result without limit in the query
- if ($requestData['length']!==-1){
- $sql.=" ORDER BY ". $columns[$requestData['order'][0]['column']]." ".$requestData['order'][0]['dir']." LIMIT ".$requestData['start']." ,".$requestData['length']." "; // $requestData['order'][0]['column'] contains colmun index, $requestData['order'][0]['dir'] contains order such as asc/desc , $requestData['start'] contains start row number ,$requestData['length'] contains limit length.
- } else {
- $sql.=" ORDER BY ". $columns[$requestData['order'][0]['column']]." ".$requestData['order'][0]['dir']
- }
- $query=mysqli_query($conn, $sql) or die("employee-grid-data.php: get employees"); // again run query with limit
- } else {
- $sql = "SELECT employee_name, employee_salary, employee_age ";
- $sql.=" FROM employee";
- if ($requestData['length']!==-1){
- $sql.=" ORDER BY ". $columns[$requestData['order'][0]['column']]." ".$requestData['order'][0]['dir']." LIMIT ".$requestData['start']." ,".$requestData['length']." ";
- } else {
- $sql.=" ORDER BY ". $columns[$requestData['order'][0]['column']]." ".$requestData['order'][0]['dir']
- }
- $query=mysqli_query($conn, $sql) or die("employee-grid-data.php: get employees");
- }
- $data = array();
- while( $row=mysqli_fetch_array($query) ) { // preparing an array
- $nestedData=array();
- $nestedData[] = $row["employee_name"];
- $nestedData[] = $row["employee_salary"];
- $nestedData[] = $row["employee_age"];
- $data[] = $nestedData;
- }
- $json_data = array(
- "draw" => intval( $requestData['draw'] ), // for every request/draw by clientside , they send a number as a parameter, when they recieve a response/data they first check the draw number, so we are sending same number in draw.
- "recordsTotal" => intval( $totalData ), // total number of records
- "recordsFiltered" => intval( $totalFiltered ), // total number of records after searching, if there is no searching then totalFiltered = totalData
- "data" => $data // total data array
- );
- echo json_encode($json_data); // send data as json format
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement