我已经用 PHP 和 AJAX 为表格编写了分页代码。每页将显示表格的 8 行。到这里为止一切正常。
我现在需要的是使分页看起来像一系列数字和它们之间的点,如下所示(1 2 3 .... 27 28 29).
我有两个用于分页的文件:
conf.php
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" id="font-awesome-style-css"
href="http://phpflow.com/code/css/bootstrap3.min.css" type="text/css"
media="all">
<script type="text/javascript" charset="utf8"
src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.8.2.min.js">
</script>
</head>
<body>
<div>
<p> Table <br/> </p>
<div id="target" >Loading ...</div>
<?php
include('dbconnect.php');
$limit = 8;
$sql = "SELECT * FROM places";
$rs_result = mysqli_query($connect,$sql);
$c = mysqli_num_rows($rs_result); //count number of rows
$total_num_pages = ceil($c / $limit);
?>
<div align="center">
<ul class='pagination text-center' id="pagination">
<?php
if(!empty($total_num_pages)):for($j=1; $j<=$total_num_pages; $j++):
if($j == 1):?>
<li class='active' id="<?php echo $j;?>">
<a href='paginate.php?page=<?php echo $j;?> '><?php echo $j;?></a>
</li>
<?php else:?>
<li id="<?php echo $j;?>">
<a href='paginate.php?page=<?php echo $j;?>'><?php echo $j;?></a>
</li>
<?php endif;?>
<?php endfor;endif;?>
</ul>
</div>
</div>
<script>
jQuery(document).ready(function() {
jQuery("#target").load("paginate.php?page=1");
jQuery("#pagination li").live('click',function(e){
e.preventDefault();
jQuery("#target").html('loading...');
jQuery("#pagination li").removeClass('active');
jQuery(this).addClass('active');
var pageNum = this.id;
jQuery("#target").load("paginate.php?page=" + pageNum);
});
});
</script>
</body>
第二个是paginate.php
:
<?php
include('dbconnect.php');
$limit = 8;
if (isset($_GET["page"])) { $page = $_GET["page"]; } else { $page=1; };
$start_from = ($page-1) * $limit;
$query = "SELECT * FROM places ORDER BY id ASC LIMIT $start_from, $limit";
$result = mysqli_query($connect,$query);
if(!$query)
{
echo mysql_error();
}
?>
<?php
echo '<p style="color:#003566;font-size:15px;"> You are on page ' .$page. '<br> </p>';
echo '<table border="1" align="center">';
echo '<tr><th>Name</th><th>link</th><th>My date</th><th>End date</th><th>place</th></tr>';
while ($row = mysqli_fetch_assoc($result)) {
echo "<tr><td>";
echo $row['name'];
echo "</td><td>";
echo $row['link'];
echo "</td><td>";
echo $row['date'];
echo "</td><td>";
echo $row['end'];
echo "</td><td>";
echo $row['place'];
echo "</td></tr>";
}
echo '</table>';
?>
谁能告诉我如何做到这一点?
<?php
$numbers = array(1,2,3,4,5,6,7,8,9,10,11,12);
$output = '';
$counter = 1;
foreach ($numbers as $number){
if($counter == 4){
$output .= ' ...';
}elseif($counter < 4 || $counter > (count($numbers) -3)){
$output .= ' ' . $number;
}
$counter++;
}
另请检查此链接 https://stackoverflow.com/questions/19270804/zend-pagination-with-limited-number-of-links-and-dots-between
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)