
下面的是PHP控制器页面,用的是微擎框架
<?php
/**
* inter getNews 官网获取新闻数据
*/
defined('IN_IA') or exit('Access Denied');
global $_W, $_GPC;
//获取POST的数据
if($_W['isajax']) {
include IA_ROOT.'/attachment/page.class.php';
//$page = new page();
$showrow = 1; //一页显示的行数
$curpage = empty($_GET['page']) ? 1 : $_GET['page']; //当前的页,还应该处理非数字的情况
$url = "?page={page}"; //分页地址,如果有检索条件 ="?page={page}&q=".$_GET['q']
//var_dump(222);
$sql = "select * from ims_delixin_article where type=1 order by id desc";
//$included_files = get_included_files();
//print_r($included_files);
$result= pdo_fetchall($sql);
$num=0;
foreach($result as $value)
{
$num++;
}
$total = $num;
// var_dump(111);
if (!empty($_GET['page']) && $total != 0 && $curpage > ceil($total / $showrow))
$curpage = ceil($total_rows / $showrow); //当前页数大于最后页数,取最后一页
//var_dump($curpage)
//获取数据
$sql .= " LIMIT " . ($curpage - 1) * $showrow . ",$showrow;";
$result=pdo_fetchall($sql);//执行添加语句并返回受影响行数
/********************/
if ($total > $showrow) {//总记录数大于每页显示数,显示分页
$page = new page($total, $showrow, $curpage, $url, 2);
$page_show = $page->myde_write();
}
/********************/
if( $result ){
$data = array();
$data['show']=$page_show;
/* $data['showrow']=$showrow;
$data['curpage']=$curpage;
$data['url']=$url;
$data['page']=$page_jzc;*/
foreach ($result as $key=>$val ){
//文章标题
$data[$key]['title'] = $val['title'];
$data[$key]['ctime'] = $val['ctime'];
$data[$key]['id'] = $val['id'];
$val['content'] = html_entity_decode( $val['content']);
//过滤html标记(含图片)后的纯文本
$data[$key]['content'] =mb_substr( strip_tags( $val['content'] ),0,70,'utf-8');
//匹配文中的第一张图片
$pattern="/<[img|IMG].*?src=[\'|\"](.*?(?:[\.gif|\.jpg]))[\'|\"].*?[\/]?>/";
preg_match_all( $pattern, $val['content'], $matches );//不带引号*/
$data[$key]['thum'] = $matches[1][0]?$matches[1][0]:'';
}
}
if( $data ){
//截取数组的倒序四个
//$return = array_slice( $data, 0, 4 );
returnJson( 0, $data );
}
//获取垃圾分类失败
returnJson( -1, array('status'=>'fail'), 'System is busy' );
}
下面的是ja//读取新闻列表信息
var newsUrl = "/delixin/inter/index.php?c=website&a=getNewsList";
var data = ''
$.post( newsUrl, data, function( res ){
if( res.datas ){
var liObj = "";
var fenye =res.datas['show'];
var html = "";
for( i in res.datas ){
html += '<ul style="width:70%;border:0px solid;margin:0 auto;height:10vw;padding:1vw;margin-top:1vw;">'+
'<li>'+
'<div style="border:0px solid;width:30%;float:left;text-align:right;">'+
'<img src="'+res.datas[i]['thum']+'" style="width:68%;height: 160px;margin-right:1vw;">'+
'</div>'+
'<div style="color:#fff;padding:5px 0 0 5px;background:#2B503E;border:0px solid;width:69%;float:right;">'+
'<a href="http://'+window.location.host+'/delixin/website/newsDetail.php?id='+res.datas[i]['id']+'" style="color:#fff;cursor:pointer;"><h4>'+res.datas[i]['title']+'</h4></a>'+
'<div style="margin-top:1vw;">'+res.datas[i]['ctime']+'</div>'+
'<div style="margin-top:1vw;">'+res.datas[i]['content']+'...</div>'+
'<input type="hidden" value="'+res.datas[i]['id']+'" class="id_jzc" />'+
'<div style="margin-top:1vw;padding-bottom:10px;color:#1BB599;"><a href="http://'+window.location.host+'/delixin/website/newsDetail.php?id='+res.datas[i]['id']+'" style="color:#fff;cursor:pointer;">查看详情 >></a></div>'+
'</div>'+
'</li>'+
'</ul>';
}
$("#big_box").html( html );
$(".show_page").html(fenye);
}
else{
alert( '官网新闻数据加载失败' );
}
});下面是HTML代码:<div class="showPage" style="background:#fff;text-align:center;border:1px solid;width:50%;margin:0 auto;height:5vw;">
<div class="show_page" style="width:72%;border:1px solid;text-align:center;margin:0 auto;"></div>
</div>下面是分页类的代码<?php
class page {
private $myde_total; //总记录数
private $myde_size; //一页显示的记录数
private $myde_page; //当前页
private $myde_page_count; //总页数
private $myde_i; //起头页数
private $myde_en; //结尾页数
private $myde_url; //获取当前的url
/*
* $show_pages
* 页面显示的格式,显示链接的页数为2*$show_pages+1。
* 如$show_pages=2那么页面上显示就是[首页] [上页] 1 2 3 4 5 [下页] [尾页]
*/
private $show_pages;
public function __construct($myde_total = 1, $myde_size = 1, $myde_page = 1, $myde_url, $show_pages = 2) {
$this->myde_total = $this->numeric($myde_total);
$this->myde_size = $this->numeric($myde_size);
$this->myde_page = $this->numeric($myde_page);
$this->myde_page_count = ceil($this->myde_total / $this->myde_size);
$this->myde_url = $myde_url;
if ($this->myde_total < 0)
$this->myde_total = 0;
if ($this->myde_page < 1)
$this->myde_page = 1;
if ($this->myde_page_count < 1)
$this->myde_page_count = 1;
if ($this->myde_page > $this->myde_page_count)
$this->myde_page = $this->myde_page_count;
$this->limit = ($this->myde_page - 1) * $this->myde_size;
$this->myde_i = $this->myde_page - $show_pages;
$this->myde_en = $this->myde_page + $show_pages;
if ($this->myde_i < 1) {
$this->myde_en = $this->myde_en + (1 - $this->myde_i);
$this->myde_i = 1;
}
if ($this->myde_en > $this->myde_page_count) {
$this->myde_i = $this->myde_i - ($this->myde_en - $this->myde_page_count);
$this->myde_en = $this->myde_page_count;
}
if ($this->myde_i < 1)
$this->myde_i = 1;
}
//检测是否为数字
private function numeric($num) {
if (strlen($num)) {
if (!preg_match("/^[0-9]+$/", $num)) {
$num = 1;
} else {
$num = substr($num, 0, 11);
}
} else {
$num = 1;
}
return $num;
}
//地址替换
private function page_replace($page) {
return str_replace("{page}", $page, $this->myde_url);
}
//首页
private function myde_home() {
if ($this->myde_page != 1) {
return "<a href='" . $this->page_replace(1) . "' title='首页'>首页</a>";
} else {
return "<p>首页</p>";
}
}
//上一页
private function myde_prev() {
if ($this->myde_page != 1) {
return "<a href='" . $this->page_replace($this->myde_page - 1) . "' title='上一页'>上一页</a>";
} else {
return "<p>上一页</p>";
}
}
//下一页
private function myde_next() {
if ($this->myde_page != $this->myde_page_count) {
return "<a href='" . $this->page_replace($this->myde_page + 1) . "' title='下一页'>下一页</a>";
} else {
return"<p>下一页</p>";
}
}
//尾页
private function myde_last() {
if ($this->myde_page != $this->myde_page_count) {
return "<a href='" . $this->page_replace($this->myde_page_count) . "' title='尾页'>尾页</a>";
} else {
return "<p>尾页</p>";
}
}
//输出
public function myde_write($id = 'page') {
$str = "<div id=" . $id . ">";
$str.=$this->myde_home();
$str.=$this->myde_prev();
if ($this->myde_i > 1) {
$str.="<p class='pageEllipsis'>...</p>";
}
for ($i = $this->myde_i; $i <= $this->myde_en; $i++) {
if ($i == $this->myde_page) {
$str.="<a href='" . $this->page_replace($i) . "' title='第" . $i . "页' class='cur'>$i</a>";
} else {
$str.="<a href='" . $this->page_replace($i) . "' title='第" . $i . "页'>$i</a>";
}
}
if ($this->myde_en < $this->myde_page_count) {
$str.="<p class='pageEllipsis'>...</p>";
}
$str.=$this->myde_next();
$str.=$this->myde_last();
$str.="<p class='pageRemark'>共<b>" . $this->myde_page_count .
"</b>页<b>" . $this->myde_total . "</b>条数据</p>";
$str.="</div>";
return $str;
}
}
?> 最佳答案