jQuery+PHP发布的内容进行无刷新分页(Fckeditor)


Posted in PHP onOctober 22, 2015

这篇文章将使用jQuery,并结合PHP,将Fckeditor发布的内容进行分页,并且实现无刷新切换页面。
 本文假设你是WEB开发人员,掌握了jQuery和PHP相关知识,并且熟知Fckeditor的配置和使用。
Fckeditor编辑器有一个插入分页符的功能按钮,点击该按钮,将会在内容区插入一条分页符,如下图红色框标注:

jQuery+PHP发布的内容进行无刷新分页(Fckeditor)

分页符对应生成的html代码是:

<div style="page-break-after: always"><span style="display: none"> </span></div>

我们实际应用情况是这样的:后台通过Fckeditor编辑器发布的内容,提交到数据库,前台通过PHP链接数据库获取发布的内容,然后将长内容进行分割,并进行分页。
PHP
PHP将内容分割的方法如下:

function pageBreak($content){ 
 $content = $content; 
 $pattern = "/<div style=\"page-break-after: always\"><span style=\"display: none\"> 
<\/span><\/div>/"; 
 $strSplit = preg_split($pattern, $content, -1, PREG_SPLIT_NO_EMPTY); 
 $count = count($strSplit); 
 $outStr = ""; 
 $i  = 1; 
 
 if ($count > 1 ) { 
  $outStr = "<div id='page_break'>"; 
  foreach($strSplit as $value) { 
   if ($i <= 1) { 
    $outStr .= "<div id='page_$i'>$value</div>"; 
   } else { 
    $outStr .= "<div id='page_$i' class='collapse'>$value</div>"; 
   } 
   $i++; 
  } 
 
  $outStr .= "<div class='num'>"; 
  for ($i = 1; $i <= $count; $i++) { 
   $outStr .= "<li>$i</li>"; 
  } 
  $outStr .= "</div></div>"; 
  return $outStr; 
 } else { 
  return $content; 
 } 
}

可以看出啦,上述代码中的$pattern就是Fckeditor编辑器生成的分页符代码,然后PHP通过preg_split()函数比对内容,以分隔符为分界点,将内容分割为多个page_,并且生成分页导航按钮。使用时只需调用pageBreak($content)即可。
CSS
我们通过CSS来呈现分页按钮的风格,当然你可以修改这些CSS,定制你想要的外观。

#page_break {} 
#page_break .collapse {display: none;} 
#page_break .num {padding: 10px 0;text-align: center;} 
#page_break .num li{display: inline; margin: 0 2px;padding: 3px 5px;border:1px solid #abcee4; 
background-color: #fff;color: #369;text-align: center;cursor: pointer;overflow: hidden;} 
#page_break .num li.on{background-color: #369;color: #fff;font-weight: bold;}

jQuery

$(function(){ 
 $('#page_break .num li:first').addClass('on'); 
 
 $('#page_break .num li').click(function(){ 
  //隐藏所有页内容 
  $("#page_break div[id^='page_']").hide(); 
 
  //显示当前页内容。 
  if ($(this).hasClass('on')) { 
   $('#page_break #page_' + $(this).text()).show(); 
  } else { 
   $('#page_break .num li').removeClass('on'); 
   $(this).addClass('on'); 
   $('#page_break #page_' + $(this).text()).fadeIn('normal'); 
  } 
 }); 
});

我们使用jQuery将分页导航按钮的第一页设置为当前状态,然后通过单击分页按钮,切换按钮的状态,并且显示对应页的内容。
顺便说一下,文章标题说的是无刷新,其实这不是Ajax的无刷新效果,而是通过jQuery控制页面内容的显示与隐藏,页面内容是一次性读取载入的。

关于jquery无刷新分页有许多文章,大家可以搜搜之前的文章,或许会有更大的启发。

PHP 相关文章推荐
PHP4 与 MySQL 交互使用
Oct 09 PHP
php 处理上百万条的数据库如何提高处理查询速度
Feb 08 PHP
php中函数的形参与实参的问题说明
Sep 01 PHP
一篇有意思的技术文章php介绍篇
Oct 26 PHP
php中取得URL的根域名的代码
Mar 23 PHP
Codeigniter实现智能裁剪图片的方法
Jun 12 PHP
PHP简单处理表单输入的特殊字符的方法
Feb 03 PHP
Yii中srbac权限扩展模块工作原理与用法分析
Jul 14 PHP
利用php实现一周之内自动登录存储机制(cookie、session、localStorage)
Oct 31 PHP
PHP观察者模式原理与简单实现方法示例
Aug 25 PHP
php之可变函数的实例详解
Sep 13 PHP
Laravel模型间关系设置分表的方法示例
Apr 21 PHP
PHP+Mysql+jQuery查询和列表框选择操作实例讲解
Oct 22 #PHP
PHP实现无限级分类(不使用递归)
Oct 22 #PHP
PHP实现递归无限级分类
Oct 22 #PHP
php防止网站被攻击的应急代码
Oct 21 #PHP
PHP统计当前在线用户数实例讲解
Oct 21 #PHP
php精确的统计在线人数的方法
Oct 21 #PHP
为你总结一些php信息函数
Oct 21 #PHP
You might like
用PHP实现WEB动态网页静态
2006/10/09 PHP
PHP开发中常用的三个表单验证函数使用小结
2010/03/03 PHP
深入理解PHP JSON数组与对象
2016/07/19 PHP
ThinkPHP实现登录退出功能
2017/06/29 PHP
PJBlog插件 防刷新的在线播放器
2006/10/25 Javascript
dwr spring的集成实现代码
2009/03/22 Javascript
jquery photoFrame 图片边框美化显示插件
2010/06/28 Javascript
jquery实现居中弹出层代码
2010/08/25 Javascript
超级有用的13个基于jQuery的内容滚动插件和教程
2011/07/31 Javascript
浅析jQuery EasyUI中的tree使用指南
2014/12/18 Javascript
AngularJS控制器之间的数据共享及通信详解
2016/08/01 Javascript
js中遍历Map对象的简单实例
2016/08/08 Javascript
深入理解Vue 单向数据流的原理
2017/11/09 Javascript
JS实现仿微信支付弹窗功能
2018/06/25 Javascript
JS module的导出和导入的实现代码
2019/02/25 Javascript
小程序封装路由文件和路由方法(5种全解析)
2019/05/26 Javascript
vue.js this.$router.push获取不到params参数问题
2020/03/03 Javascript
js实现抽奖功能
2020/11/24 Javascript
[02:06]DOTA2英雄基础教程 暗影萨满
2013/12/16 DOTA
Python导出数据到Excel可读取的CSV文件的方法
2015/05/12 Python
numpy给array增加维度np.newaxis的实例
2018/11/01 Python
基于python3 的百度图片下载器的实现代码
2019/11/05 Python
Python定时器线程池原理详解
2020/02/26 Python
python把一个字符串切开的实例方法
2020/09/27 Python
10 套华丽的CSS3 按钮小结
2012/10/03 HTML / CSS
CSS3按钮鼠标悬浮实现光圈效果源码
2016/09/11 HTML / CSS
JSF面试题:Jsf中的核心类用那些?有什么作用?LiftCycle六大生命周期是什么?
2014/07/17 面试题
煤矿班组长岗位职责
2013/12/29 职场文书
打架检讨书2000字
2014/02/22 职场文书
理财投资建议书
2014/03/12 职场文书
农村面貌改造提升实施方案
2014/03/18 职场文书
仓库文员岗位职责
2014/04/06 职场文书
2014客服代表实习自我鉴定
2014/09/18 职场文书
2014年大班保育员工作总结
2014/12/02 职场文书
Go缓冲channel和非缓冲channel的区别说明
2021/04/25 Golang
mysql查看表结构的三种方法总结
2022/07/07 MySQL