ホームページ > バックエンド開発 > PHPチュートリアル > 複数のページが 1 つの PHP ページに共存する

複数のページが 1 つの PHP ページに共存する

WBOY
リリース: 2016-06-23 14:17:51
オリジナル
1611 人が閲覧しました

PHP ページネーション

PHP ページネーション用のカスタム関数を書きましたが、それを使うのはとても良いです:
pageFunc($dataNum,$pageSize,$pageName)//记录集,每页显示的条数,分页名
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

今日、突然思いついたのですが、ページネーションが必要なページ上に複数の領域がある場合はどうすればよいでしょうか?
最初に考えたのは、差別化を目的としてカスタム ページング関数にページングの名前を識別するパラメーターを追加することでしたが、失敗しました。
実現可能な解決策を教えてください。ありがとう!


ディスカッションへの返信 (解決策)

最も簡単な方法は、正確なコピーをコピーしてから変数を変更することです

PHP ページネーション用のカスタム関数を作成しましたが、それを使用するのは良い感じです:

pageFunc($dataNum,$pageSize,$pageName)//记录集,每页显示的条数,分页名
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

今日、突然私はページネーションが必要な領域がいくつかあるページがある場合はどうすればよいでしょうか?
最初に考えたのは、差別化を目的としてカスタム ページング関数にページングの名前を識別するパラメーターを追加することでしたが、失敗しました。
実現可能な解決策を教えてください。ありがとう!
一般に、AJAX ページングは​​複数のページネーションに使用されます

最も簡単な方法は、同じものをコピーしてから変数を変更することです
このメソッドのコードは冗長すぎます。


私は PHP でページング用のカスタム関数を書きました、そして、それを使うのはとても良いです:

pageFunc($dataNum,$pageSize,$pageName)//记录集,每页显示的条数,分页名
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

今日、突然思いついたのですが、ページネーションが必要なページ上にいくつかの領域がある場合はどうなるでしょうか?
最初に考えたのは、差別化を目的としてカスタム ページング関数にページングの名前を識別するパラメーターを追加することでしたが、失敗しました。
実現可能な解決策を教えてください。ありがとう!
一般に、AJAX ページングは​​複数のページネーションに使用されます
AJAX を使用する必要がありますか?他に方法はありますか?それを関数にカプセル化するのが最善です



私は PHP ページング用のカスタム関数を書きました、そして、それを使用するのは良い感じです:

pageFunc($dataNum,$pageSize,$pageName)//记录集,每页显示的条数,分页名
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

今日、突然考えたのですが、ページネーションされるページ上に複数の領域がある場合はどうなるでしょうか? 管理?
最初に考えたのは、差別化を目的としてカスタム ページング関数にページングの名前を識別するパラメーターを追加することでしたが、失敗しました。
実現可能な解決策を教えてください。ありがとう!
一般に、AJAX ページングは​​複数のページネーションに使用されます。
AJAX を使用する必要がありますか?他に方法はありますか?それを関数にカプセル化するのが最善です
この面倒な方法をどうしても使いたい場合は、各ページに異なるラベルを追加し、そのラベルを使用してデータのページ分割とクエリを行うかどうかを決定するだけです
この効率はおそらく高くありません高い

重要な点が 1 つあることを覚えておいてください:

ページ分割してデータをページごとにクエリするかどうかを決定します

異なる識別子を使用するだけでは十分ではありません

この面倒な方法を使用することに固執する場合

次に、異なる識別子を追加して、次を使用する必要がありますページングとページングでデータをクエリするかどうかを決定するための識別子です。残念ながら、この効率は高くありません。ありがとうございます。応答は非常に速いです。
ページネーションをしたいとして、カスタム関数としてどのように書けばよいでしょうか?


この面倒な方法をどうしても使いたい場合は

その場合は、各ページに異なるラベルを追加し、そのラベルを使用してデータをページングしてクエリするかどうかを決定するしかありません

これはおそらくあまり効率的ではありません
返信ありがとうございます本当に速いです!
ページネーションをしたいとして、カスタム関数としてどのように書けばよいでしょうか?

くそー、元の単一ページを使用してください。ページングを呼び出すかどうか、およびページング データをクエリするかどうかを区別するパラメーターを 1 つ追加するだけです

明確に表現していませんが、私の意図は次のとおりです:
ページにはページングを使用する必要がある複数のモジュールがあり、モジュールはそれぞれに影響を与えませんページング表示

私の意図は次のとおりです:
ページングを必要とするモジュールは相互にデータのページング表示に影響を与えません

言葉が足りませんか?


ページングを呼び出すかどうかとページングデータをクエリするかを区別するパラメータをもう 1 つ追加します


ページングを呼び出すかどうかとページングデータをクエリするかどうかを異なる識別子に基づいて判断すれば、当然ページングの表示には影響しません

ページ上に存在することはできません 異なる領域に同じコンテンツを表示することは理論的には可能ですが、実際にはあまりにも愚かです
したがって、異なるページングは​​異なるデータソースを参照する必要があります

ページングがページジャンプによって完了する場合、複数のページングが行われます。ページは必然的に混沌とした状況につながります


まず第一に、2人のボスに感謝します!
より丁寧に説明するために、コードとフロント ページのスクリーンショットを載せます。

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;	}?>
ログイン後にコピー




説明: 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');//输出分页结构?>
ログイン後にコピー




ajax を使用してそれを行う場合、あなたが言及した問題は存在しません。

あなたの問題は、URL アップロード ページ番号のパラメータがページネーションのどの領域に渡されるかがわからないことが原因である可能性があります。チュアンシェンの伝統的な意味を使用する必要がある場合。さらにいくつかのパラメータを渡すだけです。例:scope1_page=1&scope2_page=2...
これは実際に当てはまりますが、カスタム関数を介してパラメータを渡す従来の方法を使用したいのですが、カスタム関数を変更する必要があります。重要なことを教えてください。場所はどこですか?

言葉が出ない、理解するにはコードを書く必要があるのか​​?
ページングを呼び出すかどうか、およびページング データをクエリするかどうかを決定するために異なるロゴを使用できます。これは当然、ページングの表示には影響しません

赤 2 のテキストは非常に深いものですか?
ページ分割されたデータのクエリとは何かご存知ですか?
通話ページングとは何かご存知ですか?
5 階の時から、この 2 つの側面から同時に始めるべきだと言いました
でも、あなたはいつも 1 つの側面からしか始めませんでした。それは、ページングをどのように判断するかということです。 「ページング データのクエリ」を意味する中国語の単語は非常に奥深いですか?
ページング カスタム関数に「クエリ ページング データ」を書き込むのではなく、データベース操作クラスでデータを読み取るだけです。
さらに、私の仕事は主にフロントエンドです。 PHP は初級段階にあるため、かなりの程度の障害があります。したがって、メインコードを提供するのが最善です、ありがとう〜
カスタムページング関数はページングデータのクエリとどのような関係がありますか?
ページング機能はページ番号ページングの実現に限定されています。データのクエリとどのような関係がありますか?

クエリするデータはページ数に関連していることを理解する必要があります
SELECT * FROM table LIMIT (page-1) , 30*page
ページングをクエリするときは、上記のステートメントを使用する必要があります。 あなたは正しくありません。このページングデータについて 覚醒の審判を問う、あなたのロゴの意味は何ですか?
ページ番号にはページという変数が 1 つしかありません。ページング機能を決定するために使用するのはページ番号だけですが、データは変わります。

さらに、使用するページング変数名は異なっていますが、ページング データを読み取るときに同じ変数名を使用すると、その結果、最終結果のページング データは依然として同じカオスな変更になります。

アンドコンディションとは何かご存知ですか?

つまり、2 つの条件を同時に判断する必要があります

ページネーションに追加される変数名がすべて同じである場合、モジュールの意味を表す追加の識別子を追加する必要があります

たとえば、URL は次のようになりますa.php?page=1&pagetype=1
次に処理を進めます
ページング判定処理
$page1=$page2=$page3=1;
if($pagetype==1){
$dataNum=$db-> ;nums('test1');//データテーブルのデータを取得 データ項目数
$pageSize=10;//各ページに表示される数
$db->select( "test1","*","name!='' 制限 ".($ page1-1)."".$pageSize);
$result = $db->fetchArray();
$pagestr1=pageFunc( $dataNum,$pageSize,'page');
}
elseif($pagetype= =2){
$page2=$page;
......
}
elseif($pagetype==3){
$page3=$page;
......
}

また、理解すべきことが 1 つあります: 関数内の非グローバル変数は、その関数以外のプログラムから呼び出すことはできません

カスタム関数を作成しましたPHP のページネーション用で、それを使うのはとても良いです:

pageFunc($dataNum,$pageSize,$pageName)//记录集,每页显示的条数,分页名
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

今日、突然考えたのですが、ページ上にページネーションが必要な領域がいくつかある場合はどうすればよいでしょうか。
最初に考えたのは、差別化を目的としてカスタム ページング関数にページングの名前を識別するパラメーターを追加することでしたが、失敗しました。
実現可能な解決策を教えてください。ありがとう!
一般に、AJAX ページングは​​複数のページネーションに使用されます
AJAX ページネーションは可能ですか?


まず第一に、あなたのページングは​​少し混乱していると思います。これは、ajax を使用する方が実用的だと思います。 実際、問題はページ内のページングマークと出力リンクを決定するパラメータの問題にあります。これがモデレーターの発言です: ページングを呼び出すかどうか、ページング データをクエリするかどうか



この図では、これら 2 つのモジュールを区別するページング識別子である page= と page2= を記述しています。
コードでは、$pageOffset を page と page2 に基づいてそれぞれ 2 回計算する必要があります。
ページングを出力する関数に関しては、URL を 1 回再結合するだけで、各ページのパラメーターがページング リンクに正しく渡されるようになります。
理解できるかわかりませんが?

クエリ データとページングを 1 つに統合することしかできません。ありがとうございます。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート