实现jquery DataTable前后台动态分页

本文介绍了一个使用HTML、jQuery和DataTables插件实现动态表格加载的例子。通过PHP后端与前端交互,实现数据分页显示的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

html代码:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>测试页面</title>
<meta name="description" content="">
<meta name="keywords" content="">
<link href="https://cdn.datatables.net/1.10.12/css/jquery.dataTables.min.css" rel="stylesheet">
    <link href="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.0.0-alpha.2/css/bootstrap.css" rel="stylesheet">
    <link href="https://cdn.datatables.net/1.10.12/css/dataTables.bootstrap4.min.css" rel="stylesheet">


</head>
<body>
<div style="width:50%;height:500px;margin:150px auto  ;background-color: #f4cccc">
<table id="example" class="display" cellspacing="0" width="100%">
    <thead>
    <tr>
        <th>Name</th>
        <th>Cellphone</th>
        <th>Position</th>
        <th>Company</th>
        <th>Salary</th>
    </tr>
    </thead>
    <tbody>

    </tbody>
</table>
</div>

<script type="text/javascript" src="//code.jquery.com/jquery-1.12.3.min.js"></script>
<script type="text/javascript" src=" //cdn.datatables.net/1.10.12/js/jquery.dataTables.min.js"></script>
<script type="text/javascript">
    $(document).ready(function() {
        refreshDataTable();
    });

 var refreshDataTable=function() {
     var table = $('#example').DataTable({
         //"ajax":"data/tabledata.json",
        // "iDisplayLength": 3,
         "sPaginationType": "full_numbers",
         "bPaginite": true,
         "bInfo": true,
         "bSort": true,
         "processing": false,
         "serverSide": true,
         "sAjaxSource": "customize/datatable.php",//这个是请求的地址
         "fnServerData": retrieveData

     });
     function retrieveData(url, aoData, fnCallback) {
         var data={"data":{"id":"123123","name":"2s",}};
         $.ajax({
             url: url,//这个就是请求地址对应sAjaxSource
             data : {
                 "aoData" : JSON.stringify(aoData)
             },
             type: 'POST',
             dataType: 'json',
             async: false,
             success: function (result) {

                 //var obj=JSON.parse(result);
                 console.log(result);
                 fnCallback(result);//把返回的数据传给这个方法就可以了,datatable会自动绑定数据的
             },
             error:function(XMLHttpRequest, textStatus, errorThrown) {

                 alert("status:"+XMLHttpRequest.status+",readyState:"+XMLHttpRequest.readyState+",textStatus:"+textStatus);

             }
         });
     }
 };
</script>
</body>
</html>

php代码:

<?php
header('Content-type: text/json');
   $res = $_POST['aoData'];
  $sEcho = 0;
  $iDisplayStart = 0; // 起始索引
  $iDisplayLength = 0;//分页长度
  $jsonarray= json_decode($res) ;
   foreach($jsonarray as $value){ 
   if($value->name=="sEcho"){
       $sEcho=$value->value;
   }
   if($value->name=="iDisplayStart"){
       $iDisplayStart=$value->value;
   }
   if($value->name=="iDisplayLength"){
       $iDisplayLength=$value->value;
   }
   }   
    $Array = Array(); 
     //此处生成50条数据,模仿数据库数据
    for ($i = 1; $i < 51; $i++) {
        $d = array($i,$i,$i,$i,$i);
        Array_push($Array, $d);
    }

     $json_data = array ('sEcho'=>$sEcho,'iTotalRecords'=>50,'iTotalDisplayRecords'=>50,'aaData'=>array_slice($Array,$iDisplayStart,$iDisplayLength));  //按照datatable的当前页和每页长度返回json数据
    $obj=json_encode($json_data);
   echo $obj; 

?>

效果图:
第一页
第二页


参考文章
http://www.2cto.com/kf/201502/375075.html

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值