一个php页面多个分页共存

WBOY
Libérer: 2016-06-23 14:17:51
original
1590 Les gens l'ont consulté

PHP 分页

写了个php分页的自定义函数,用着感觉挺好:
pageFunc($dataNum,$pageSize,$pageName)//记录集,每页显示的条数,分页名
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion

今天突然在想,如果我一个页面有和几个区域要做分页呢,那怎么办?
首先我想到的是将自定义分页函数添加一个参数,来标识分页的名称以达到区分的目的,结果失败啦!
请大家提供可行的解决思路给我!谢谢!


回复讨论(解决方案)

最简单的方法,复制一个一模一样的,然后改下变量就可以了

写了个php分页的自定义函数,用着感觉挺好:

pageFunc($dataNum,$pageSize,$pageName)//记录集,每页显示的条数,分页名
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion

今天突然在想,如果我一个页面有和几个区域要做分页呢,那怎么办?
首先我想到的是将自定义分页函数添加一个参数,来标识分页的名称以达到区分的目的,结果失败啦!
请大家提供可行的解决思路给我!谢谢!
一般多个分页的都采用AJAX分页了吧

最简单的方法,复制一个一模一样的,然后改下变量就可以了
这个方法代码太冗余啦!


写了个php分页的自定义函数,用着感觉挺好:

pageFunc($dataNum,$pageSize,$pageName)//记录集,每页显示的条数,分页名
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion

今天突然在想,如果我一个页面有和几个区域要做分页呢,那怎么办?
首先我想到的是将自定义分页函数添加一个参数,来标识分页的名称以达到区分的目的,结果失败啦!
请大家提供可行的解决思路给我!谢谢!
一般多个分页的都采用AJAX分页了吧
非得用ajax吗?还有其它方法吗?最好是封装成函数



写了个php分页的自定义函数,用着感觉挺好:

pageFunc($dataNum,$pageSize,$pageName)//记录集,每页显示的条数,分页名
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion

今天突然在想,如果我一个页面有和几个区域要做分页呢,那怎么办?
首先我想到的是将自定义分页函数添加一个参数,来标识分页的名称以达到区分的目的,结果失败啦!
请大家提供可行的解决思路给我!谢谢!
一般多个分页的都采用AJAX分页了吧
非得用ajax吗?还有其它方法吗?最好是封装成函数
如果你非要使用这种蛋疼的做法
那你就只有给每个分页加不同的标识,然后利用进行标识来判断是否要分页和分页查询数据了
这种效率恐怕不高

记得重要一条:
判断是否要分页和分页查询数据

不是只用不同标识的就好了

如果你非要使用这种蛋疼的做法
那你就只有给每个分页加不同的标识,然后利用进行标识来判断是否要分页和分页查询数据了
这种效率恐怕不高
谢谢,回复的真快!
假设我都要分页,那么写成自定义函数的时候应该怎么写?


如果你非要使用这种蛋疼的做法
那你就只有给每个分页加不同的标识,然后利用进行标识来判断是否要分页和分页查询数据了
这种效率恐怕不高
谢谢,回复的真快!
假设我都要分页,那么写成自定义函数的时候应该怎么写?

晕死,用原来单个分页的就都可以。就只是多加一个参数来区分判断是否调用分页以及是否查询分页数据

是不是我没表达清楚,我的意向是:
一个页面有多个模块需要用到分页,模块之间彼此不影响数据的分页显示

是不是我没表达清楚,我的意向是:
一个页面有多个模块需要用到分页,模块之间彼此不影响数据的分页显示
无语,我说的还不够清楚么?

多加一个参数来区分判断是否调用分页以及是否查询分页数据


你根据不同的标识判断是否调用分页以及是否查询分页数据,那自然就不影响分页显示了啊

你不可能在页面的不同区域显示同一内容,虽然理论上可以,但实际太傻
所以不同的分页必然指向不同的数据源

如果你的分页是由页面跳转完成的,那么页面中的多个分页必将导致混乱的局面

首先谢谢两位斑竹!
为了说明的更仔细,我放上代码和前台页面的截图:

1、index.php


2、pageFunc.php

<?php/**分页函数*调用方法:pageFunc(记录集,每页显示的条数)*/function pageFunc($dataNum,$pageSize,$pageName){	global $pageOffset;	$pageCurr=1;//初始化页码	$pageNum=ceil($dataNum/$pageSize);//计算总的页数	$pageUrl=$_SERVER["REQUEST_URI"];//取得当前地址(不含域名)	$pageUrl=parse_url($pageUrl);//解析网址	$pageUrl=$pageUrl['path'];//取得路径		//接收当前页码	if(isset($_GET[$pageName])){		$pageCurr=$_GET[$pageName];		$pageCurr<=0?$pageCurr=1:'';		$pageCurr>$pageNum?$pageCurr=$pageNum:'';		is_numeric($pageCurr)?'':$pageCurr=1;//判断页码的合法性		$pageOffset=intval($pageCurr-1)*$pageSize;//数据偏移量		$pageOffset.=',';	}			if($dataNum>$pageSize){		//创建分页结构		$pageHtml="共{$dataNum}条数据,每页显示{$pageSize}条,{$pageCurr}/{$pageNum}页 ";		$pageHtml.="<a href={$pageUrl}?{$pageName}=1>首页</a> ";		$pageHtml.="<a href={$pageUrl}?{$pageName}=".($pageCurr-1).">上一页</a> ";		//$pageHtml.="$pageCurr ";		if($pageCurr+1>$pageNum){			$pageCurr=$pageNum-1;			$pageHtml.="下一页 ";			$pageHtml.="尾页 ";		}else{		$pageHtml.="<a href={$pageUrl}?{$pageName}=".($pageCurr+1).">下一页</a> ";		$pageHtml.="<a href={$pageUrl}?{$pageName}=".($pageNum).">尾页</a> ";			}	}else{		//创建分页结构		$pageHtml="共{$dataNum}条数据,1页 ";		$pageHtml.="首页 ";		$pageHtml.="上一页 ";		$pageHtml.="下一页 ";		$pageHtml.="尾页 ";	}	return $pageHtml;	}?>
Copier après la connexion




说明:1调用了2的自定义分页函数,请帮忙指点修改

改成类,用不同的实例

用ajax的方式去弄,就不存在你说的那个问题了。

你的问题应该是因为url上传页数的参数,不知道传给哪个区域的分页导致的。如果非要用传统意义的传参话。就多传几个参数呗。比如:scope1_page=1&scope2_page=2...

用ajax的方式去弄,就不存在你说的那个问题了。

你的问题应该是因为url上传页数的参数,不知道传给哪个区域的分页导致的。如果非要用传统意义的传参话。就多传几个参数呗。比如:scope1_page=1&scope2_page=2...
的确是这样的,但是我想用传统的通过自定义函数传参去解决,我只有去修改自定义函数啦,能否告诉我一下关键的要修改的地方在哪里?


用ajax的方式去弄,就不存在你说的那个问题了。

你的问题应该是因为url上传页数的参数,不知道传给哪个区域的分页导致的。如果非要用传统意义的传参话。就多传几个参数呗。比如:scope1_page=1&scope2_page=2...
的确是这样的,但是我想用传统的通过自定义函数传参去解决,我只有去修改自定义函数啦,能否告诉我一下关键的要修改的地方在哪里?

无语,是不是非要弄代码你才明白?
你根据不同的标识判断 是否调用分页以及 是否查询分页数据,那自然就不影响分页显示了啊

是不是红色2处的文字很深奥呢?
懂什么叫查询分页数据么?
又懂什么叫调用分页么?
从5楼开始我就说要从这2方面同时下手
你却一直只在怎么判断调用分页一个方面去下手
真心无语,是不是“查询分页数据”这6个中文很深奥?

用ajax的方式去弄,就不存在你说的那个问题了。

你的问题应该是因为url上传页数的参数,不知道传给哪个区域的分页导致的。如果非要用传统意义的传参话。就多传几个参数呗。比如:scope1_page=1&scope2_page=2...
传100个参数也一样,问题的重点根源都不知道是在哪,加那么多参数有P用

试问,你根据标识判断了不调用了分页哪又怎样呢?
但实际的几个模块的内容分页数据已经查询调用了,你一直在判断是否调用分页有什么意义?
你页数是现实了第一页,可数据却显示的是第二页的数据,你觉得你一直绕在判断是否调用分页上有什么意义?

从5头开始我就说从2个方面同时下手,我都不搞不明白你,是不是“是否查询分页数据”这几个中文很深奥?



用ajax的方式去弄,就不存在你说的那个问题了。

你的问题应该是因为url上传页数的参数,不知道传给哪个区域的分页导致的。如果非要用传统意义的传参话。就多传几个参数呗。比如:scope1_page=1&scope2_page=2...
的确是这样的,但是我想用传统的通过自定义函数传参去解决,我只有去修改自定义函数啦,能否告诉我一下关键的要修改的地方在哪里?

无语,是不是非要弄代码你才明白?
你根据不同的标识判断 是否调用分页以及 是否查询分页数据,那自然就不影响分页显示了啊

是不是红色2处的文字很深奥呢?
懂什么叫查询分页数据么?
又懂什么叫调用分页么?
从5楼开始我就说要从这2方面同时下手
你却一直只在怎么判断调用分页一个方面去下手
真心无语,是不是“查询分页数据”这6个中文很深奥?
“查询分页数据”我不写到分页自定义函数里去的,是一个数据库操作类里读取数据的,只不过是向这个操作类里传入偏移值而已;
另外,我的工作主要是前端,php属于初级阶段,所以在很大程度上有障碍!因此最好能提供一下主要代码,谢谢啦~

天气燥热,版主火气很大,体谅下php菜鸟~

贴上页面代码:

<?phpheader("content-type:text/html;charset=utf-8");include('include/mysql_class.php');//调用数据操作类include('include/pageFunc.php');//调用分页自定义函数$db=new mysql('localhost','root','123','db_infor');//数据操作类的实例化/**********************区域1********************///分页传参$dataNum=$db->nums('test1');//取得数据表中的数据条数$pageSize=10;//每页显示的数量pageFunc($dataNum,$pageSize,'page_type1');//分页//输出数据$db->select("test1","*","name!='' limit ".$pageOffset."".$pageSize);$result = $db->fetchArray();echo '<ul>';foreach($result as $value){	echo '<li>'.$value['name'].'</li>';}echo '</ul>';echo pageFunc($dataNum,$pageSize,'page_type1');//输出分页结构/**********************区域2********************///分页传参$dataNum2=$db->nums('test1');//取得数据表中的数据条数$pageSize2=10;//每页显示的数量pageFunc($dataNum2,$pageSize2,'page_type2');//输出数据$db->select("test1","*","name!='' limit ".$pageOffset."".$pageSize2);//分页$result = $db->fetchArray();echo '<ul>';foreach($result as $value){	echo '<li>'.$value['name'].'</li>';}echo '</ul>';echo pageFunc($dataNum2,$pageSize2,'page_type2');//输出分页结构?>
Copier après la connexion




用ajax的方式去弄,就不存在你说的那个问题了。

你的问题应该是因为url上传页数的参数,不知道传给哪个区域的分页导致的。如果非要用传统意义的传参话。就多传几个参数呗。比如:scope1_page=1&scope2_page=2...
的确是这样的,但是我想用传统的通过自定义函数传参去解决,我只有去修改自定义函数啦,能否告诉我一下关键的要修改的地方在哪里?

无语,是不是非要弄代码你才明白?
你根据不同的标识判断 是否调用分页以及 是否查询分页数据,那自然就不影响分页显示了啊

是不是红色2处的文字很深奥呢?
懂什么叫查询分页数据么?
又懂什么叫调用分页么?
从5楼开始我就说要从这2方面同时下手
你却一直只在怎么判断调用分页一个方面去下手
真心无语,是不是“查询分页数据”这6个中文很深奥?
“查询分页数据”我不写到分页自定义函数里去的,是一个数据库操作类里读取数据的,只不过是向这个操作类里传入偏移值而已;
另外,我的工作主要是前端,php属于初级阶段,所以在很大程度上有障碍!因此最好能提供一下主要代码,谢谢啦~
真心无语,你分页自定义函数与,你查询分页数据有什么关系?
分页函数就作用仅限于实现页数分页而已,跟查询数据有什么关系呢?

你要明白,你查询数据是跟页数有关系
SELECT * FROM table LIMIT (page-1) , 30*page
查询分页的时候是要用到上面的语句的,你都不对这个分页数据查询惊醒判断,你标识用了有什么意义呢?
你的页数只有一个变量,都是page,你只用标识判断调用了分页函数,那么你页数是不变化了,但数据却变化了,有什么意义呢?

再者假设,你用的分页变量名是不同的,可你在读取分页数据的时候却用了同一变量名,导致最终的结果分页数据还是一样混乱变化,有什么意义?

知道什么是and条件么?

也就是2个条件必须同时判断
加入分页的变量名都是一样的,那么就必须另外加一个标识代表模块的意思

比如网址是a.php?page=1&pagetype=1
那么得进行处理
分页判断处理
$page1=$page2=$page3=1;
if($pagetype==1){
$dataNum=$db->nums('test1');//取得数据表中的数据条数
$pageSize=10;//每页显示的数量
$page1=$page;
$db->select("test1","*","name!='' limit ".($page1-1)."".$pageSize);
$result = $db->fetchArray();
$pagestr1=pageFunc($dataNum,$pageSize,'page');
}
elseif($pagetype==2){
$page2=$page;
.......
}
elseif($pagetype==3){
$page3=$page;
.......
}

还有,要明白一点:函数里的非全局变量不能被函数意外的程序调用的


写了个php分页的自定义函数,用着感觉挺好:

pageFunc($dataNum,$pageSize,$pageName)//记录集,每页显示的条数,分页名
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion

今天突然在想,如果我一个页面有和几个区域要做分页呢,那怎么办?
首先我想到的是将自定义分页函数添加一个参数,来标识分页的名称以达到区分的目的,结果失败啦!
请大家提供可行的解决思路给我!谢谢!
一般多个分页的都采用AJAX分页了吧
ajax 能分页?

首先,你这种分页有点混乱,感觉用ajax更实际一些,这是建议。
那实际上你的问题点在于页面内判断分页标识和输出链接的参数问题。也就是版主说到的  是否调用分页以及 是否查询分页数据


此图中你就写明了page=和page2=也就是区分这2个模块的分页标识。
代码中$pageOffset需要分别根据page和page2来计算两次。
而输出分页那个函数,仅仅只需要将url重新拼接一次,以确保每个page的参数都正确的传递到分页链接里。
不知道你明白没有?

只能将查询数据和分页整合到一块去啦,结贴!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal