html分页表格.docx

上传人:b****8 文档编号:10951003 上传时间:2023-02-23 格式:DOCX 页数:17 大小:21.29KB
下载 相关 举报
html分页表格.docx_第1页
第1页 / 共17页
html分页表格.docx_第2页
第2页 / 共17页
html分页表格.docx_第3页
第3页 / 共17页
html分页表格.docx_第4页
第4页 / 共17页
html分页表格.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

html分页表格.docx

《html分页表格.docx》由会员分享,可在线阅读,更多相关《html分页表格.docx(17页珍藏版)》请在冰豆网上搜索。

html分页表格.docx

html分页表格

竭诚为您提供优质文档/双击可除

html,分页表格

  篇一:

使用php和jquery制作分页和表格

  使用php和jquery制作分页和表格

  如果您已经下载了本站提供的baseproject项目源码,后台中列表页面均可作为示例,其中文章列表页面的功能最为丰富。

如果您没有下载该源码,相关的js文件可以从获得,示例页面为页面。

以下是后台文章列表页面的截图。

  分页和表格功能实例截图分页功能详解

  分页功能用于当目标数据过多时,为提高页面展示速度采用的一种手段。

本文中的分页功能借用了zendFramework中的zend_paginator对象,分页适配器为

  zend_paginator_adapter_null。

该适配器也是最简单易用的一个。

工作原理

  在php端,分页功能的基本参数为记录总数($countRows)、每页显示的记录数

  ($rowsperpage)、当前页码($page默认值为1),页码数量($items指每次在页面上显示多少个页码,建议为单数)。

其他参数可以通过计算得到:

  1.页码合计($countpages)取不小于$countRows/$rowsperpage的整数;

  2.起始页码和结束页码的计算方式太长不写了;

  3.页码列表:

从起始页码到结束页码的页码组成的数组,如array(4,5,6,7,8)

  在html端,必要的参数为php端计算得出的数据,同时需要指定一个用于显示分页信息的html元素。

然后使用jquery根据参数动态生成html并将其插入到指定的html元素中

  就行了。

  php示例代码详解1.

  2.publicfunctionarticlesaction(){$pagenumber=$this->getRequest()->getparam(page,1);//获取当前页码,如果未指定则设为1

  3.$sortby=$this->getRequest()->getparam(sortby);//获取sortby设置

  4.if(empty($sortby)||!

preg_match(/^[a-z0-9_-]+(asc|desc)$/i,$sortby)){

  5.//如果sortby为空或者不符合格式要求则使用以下的排序方式

  6.//注意:

一定要进行格式检查,防止sq(html,分页表格)l注入

  7.$sortby=project_table:

:

getFullycolumnname(article,id).desc;

  8.}

  9.$marticle=newmodel_article();

  10./*这部分是处理where子句的,和本文关系不大,略过*/

  11.$wherearray=array(

  12.`article`.`article_category_id`

  =>$this->getRequest()->getparam(project_table:

:

getFullycolumnname(article,

  article_category_id)),

  13.`article`.`article_status_id`

  =>$this->getRequest()->getparam(project_table:

:

getFullycolumnname(article,

  article_status_id)),

  14.);

  15.$wherestring=;

  16.foreach($wherearrayas$key=>$value){

  17.if(!

empty($value)){

  18.if($key==`article`.`article_category_id`-1){

  19.$wherestring.="and{$key}isnull";

  20.}else{

  21.$wherestring.="and{$key}={$value}";

  22.}

  23.}

  24.}

  25.if(!

empty($wherestring)){

  26.$wherestring=substr($wherestring,strlen(and));

  27.}else{

  28.$wherestring=null;

  29.}

  30./*以上是处理where子句的*/

  31.$maxgetRows=project_config:

:

paginatoR_item_count_peR_page;//设置每页显示的记录数量

  32.$articles=$marticle->getarticles($wherestring,$sortby,$maxgetRows,($pagenumber-1)*$maxgetRows);//从数据库中读取数据

  33.$countarticles=project_table:

:

getlastFoundRows();//获得符合条件的数据总数

  35.//如果没有取到任何记录,而且记录总数不为空,说明当前页码超出范围了,所以处理一下

  36.$articles=$marticle->getarticles($wherestring,$sortby,$maxgetRows,null);

  37.$pagenumber=1;

  38.}

  39.$pdate=project_datetime:

:

getinstance();//时间处理工具,和本文无关

  40.foreach($articlesas$key=>$article){

  41.$articles[$key][project_table:

:

getFullycolumnname(article,modified)]=$pdate->getusertimeFromtime($article[project_table:

:

getFullycolumnname(article,modified)],true);//把时间戳转换为用户的当地时间,和本文无关

  42.}

  $paginator=zend_paginator:

:

factory($countarticles,null);//调用zend提供

  的分页适配器,参数1是总记录数,参数2是适配器的名字

  44.$paginator->setcurrentpagenumber($pagenumber);//告诉分页器当前页码

  45.$pages=$paginator->getpages();//得到了前面提到的所有参数,后面我会打印它,这样你会直观的看到其内容

  46.$this->view->articles=$articles;

  47.$this->view->pages=$pages;43.

  48.//以下处理是为了页面中的下拉选单提供选项数据,和本文关系不大

  49.if(!

$this->getRequest()->ispost()){

  50.$mparticle=newmapper_article();

  51.$this->view->elementarticlestatusid=

  $mparticle->getelement(article_status_id,array(project_mapper:

:

options_nullable=>true,project_mapper:

:

options_deFault=>));

  52.$_categories=$marticle->getallowappendarticlearticlecategories(null,null,null,null,true);

  53.$categories=array(

  54.$this->view->translate(model_article:

:

no_categoRy)=>-1,

  55.);

  56.foreach($_categoriesas$key=>$row){

  57.

  $categories[$row[project_table:

:

getFullycolumnname(article_category,name)]]=$row[project_table:

:

getFullycolumnname(article_category,id)];

  58.}

  59.$mparticle=newmapper_article();

  60.$this->view->elementarticlecategories=

  $mparticle->getelement(article_category_id,array(project_mapper:

:

options_in_aRRay=>$categories,project_mapper:

:

options_nullable=>true));

  61.}

  62.}

  $pages中的内容我打印了一下,这样更直观。

如下。

  63.stdclassobject

  65.

  66.

  67.

  68.

  69.

  70.

  71.

  72.

  73.

  74.

  75.

  76.

  77.

  78.

  79.

  80.

  81.

  82.

  83.

  84.

  85.[pagecount]=>3[itemcountperpage]=>10[first]=>1[current]=>2[last]=>3[previous]=>1[next]=>3[pagesinRange]=>array([1]=>1[2]=>2[3]=>3)[firstpageinRange]=>1[lastpageinRange]=>3[currentitemcount]=>10[totalitemcount]=>21[firstitemnumber]=>11[lastitemnumber]=>20)

  zendFramework的开发人员确实很认真,返回的参数非常充分,不需要任何的补充。

  顺便提一下以上代码中未体现的细节,当使用post方式访问该页面时会得到json数据而不是html。

这个细节写在init()方法中,代码如下:

  1.publicfunctioninit(){

  2.if($this->getRequest()->ispost()){

  3.$this->_helper

  4.->contextswitch()

  5.

  6.

  7.

  8.

  9.

  10.

  11.

  }}->addactioncontext(articles,json)//就是这里咯->addactioncontext(trashcategory,json)->addactioncontext(trasharticle,json)->addactioncontext(movecategory,json)->initcontext(json);

  html示例代码详解

  这次只贴出关键的内容哦。

  1.url()>"onsubmit="

  2.try{

  returnpbase.submitForm(this,true,null,loadarticlesgrid);//使用ajax提交表

  单,回调函数为loadarticlesgrid

  4.}catch(e){

  5.alert(e.message);

  6.returnfalse;

  7.};">

  8.

  9.3.

  10.

  11.pagination($this->pages->current,articles)>

  12.

  13.

  14.

  15.search_select($this->elementarticlestatusid,array(onchange=>"pbase.paginator(div.pagination[name=articles],goto,1);"));>

  16.search_select($this->elementarticlecategories,array(onchange=>"pbase.paginator(div.pagination[name=articles],goto,1);"));>

  17.iconbutton(add,

  $this->actiontitle(createarticle),"window.open({$this->url(array(action

  =>editarticle))})",!

project_session:

:

getinstance()->isallow(editarticle))>

  18.

  19.

  20.

  21.

  22.

  23.

  24.

  25.

  false)>

  26.

  27.

  28.

  29.

  30.

  31.…pagination($this->pages->current,articles,$(document).ready(function(){//这句话就是调用js绘制分页的,第一个参数是目标容器,第二个参数是相关参数组成的json对象(就是$pages)啦)

  32.pbase.paginator(div.pagination[name=articles],{$jsonpages});

  33.});

  34.functionloadarticlesgrid(response){

  35.//ajax回调,此时重绘分页

  36.pbase.paginator(div.pagination[name=articles],response.pages);

  37.}

  38.

  里面用到了一个helper,因为这样可以避免反复去写类似的html内容。

带有两个参数,

  篇二:

7、分页显示数据页

  分页显示数据、批量删除目录1.预备知识.......................................................................................................1

  

(1)bootstraptable插件.............................................................................1

  

(2)bootstraptable使用方法.....................................................................1

  2.建立显示详细信息的三个相关文件...........................................................2

  3.编写list1.html...............................................................................................2

  

(1)引入js和css........................................................................................3

  

(2)引入导航..............................................................................................3

  (3)显示数据的table及删除按钮............................................................3

  4.编写list1.js....................................................................................................4

  5.编写分页显示及批量删除功能的后台代码...............................................6

  

(1)idal项目的iadmin.cs里增加getlist和deletelist方法的定义....6

  

(2)sqlserverdal项目的admin.cs里增加getlist和deletelist方法的实

  现............................................................................................................................6

  (3)bll项目的admin.cs里增加getlist和deletelist方法....................6

  (4)编辑web项目里的list1.ashx............................................................7

  1.预备知识

  

(1)bootstraptable插件

  bootstraptable是简洁扁平的表格,支持分页。

bootstrap-table-develop.zip是本插件的资源包。

使用时也需要用到bootstrap的资源文件,即js和css。

  

(2)bootstraptable使用方法

  1)在html页面的head标签中引入bootstrap库(假如你的项目还没使用)和bootstrap-table.css。

  

  2)在head标签或者在body标签闭合前(比较推荐)引入jquery库和bootstrap库(假如你的项目还没使用)和bootstrap-table.js。

  

  

  

  若需要支持中文需要加入

  

  3)指定数据源,这里有两种方式

  a)通过data属性标签

  在一个普通的表格中设置data-toggle="table"可以在不写javascript的情况下启用bootstraptable。

  

  

  ...

  

  b)通过javascript设置数据源

  通过javascript来启用带有id属性的table。

  

  $(#table).bootstraptable({

  url:

data.json

  });

  2.建立显示详细信息的三个相关文件

  新建list1.html、list1.js、list1.ashx三个文件

  3.编写list1.html

  

  

  

  

  

  

  

  

  

  

    type="text/javascript">

  

  

  

    scrolling="no">

    用bootstraptable显示数据列表

  

  

  

  

  编号

  登录名

  真实姓名  data-formatter="sexFormatter">性别

    data-formatter="editFormatter">操作

  

  

  

  

  

  

  

(1)引入js和css

  

  

  

  

    type="text/javascript">

  

  注意:

jquery-1.10.2.min.js、bootstrap.min.js、bootstrap-table.js、

  bootstrap-table-zh-cn.min.js放在web项目下的scripts文件夹里

  bootstrap.min.css、bootstrap-table.css放在web项目下的content文件夹里

  

(2)引入导航

    scrolling="no">

  (3)显示数据的table及删除按钮

  

  

  

  

  编号

  登录名

  真实姓名  data-formatter="sexFormatter">性别

    data-formatter="editFormatter">操作

  

  

  

  

  注意:

标题行里的第一列:

表示的是多选框。

  第二列:

编号data-field="adminid"这个属性的值要对应json数据里的数据行里的属性名。

注意不要写错,最后两列:

性别

    data-formatter="editFormatter">操作

  data-formatter="sexFormatter"、data-formatter="editFormatter",这个属性里的对应js的一个方法,用来处理原始的数据的。

  4.编写list1.js

  $(document).ready(function(){

  $.ajax({

  type:

"post",

  url:

"ashx/list1.ashx",

  //方法传参的写法一定要对,str为形参的名字,str2为第二个形参的名字data:

{"action":

"show"},

  datatype:

"json",

  success:

function(data){

  //vartbody=$(#showlist);

  //用json返回数据行时

  if(jquery.isemptyobject(data)){//判断是否登录

  alert("请先登录");

  window.location.href="login.html";

  }

  else{

  $(#table).bootstraptable({

  data:

data.admin,//数据源

  pagination:

true,//是否分页

  search:

true,//显示搜索框

  pagesize:

5,//每页的行数

  pagelist:

[5,10,20],

  pagenumber:

1,//显示的页数

  showRefresh:

true,//刷新

  striped:

true,//条纹

  sortname:

adminid,

  sortorder:

desc,

  });

  }

  },

  error:

function(err){

  alert(err);

  }

  });

  //删除按钮

  $("#btndel").click(function(){

  vardelnums=getcheck();//获取选中行的人的编号

  //alert(delnums);

  //判断是否为空。

前面是否有多余的逗号.(如果是全选,前面会多个,)if(delnums.charat(0)==","){delnums=delnums.substring

(1);}

  if(delnums==""){alert("请选择额要删除的数据");}

  else

  {

  $.ajax({

  type:

"post",

  url:

"ashx/li

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 兵器核科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1