PHP ajax 分頁類代碼
Jun 13, 2016 pm 12:26 PM
//本分頁類不處理SQL;
//大大的加快了分頁功能
//http://blog.csdn.net/fkedwgwy
//瀟湘博客--瀟湘
/**
演示
require_once('../libs/classes/page.class.php');
$page=new page(array('total'=>1000,'perpage'=>20));
echo 'mode:1
'.$page->show();
echo '
mode:2
'.$page->show(2);
echo '
mode:3
'.$page->show(3);
echo '
mode:4
'.$page->show(4);
echo '
開始AJAX模式:';
$ajaxpage=new page(array('total'=>1000,'perpage'=>20,'ajax'=>'ajax_page','page_name'=>'test'));
echo 'mode:1
'.$ajaxpage->show();
*/
class Zend_Page
{
/**
* config ,public
*/
var $page_name="page";//page標(biāo)簽,用來控制url頁。比如說xxx.php?PB_page=2中的PB_page
var $next_page='>';//下一頁
var $pre_page='var $first_page='First';//首頁
var $last_page='Last';//尾頁
var $pre_bar='var $next_bar='>>';//下一分頁條
var $format_left='';
var $format_right='';
var $is_ajax=false;//是否支持AJAX分頁模式
var $next_ten_page=">>>";
var $per_ten_page="
/**
* private
*
*/
var $pagebarnum=10;//控制記錄條的個(gè)數(shù)。
var $totalpage=0;//總頁數(shù)
var $ajax_action_name='';//AJAX動(dòng)作名
var $nowindex=1;//當(dāng)前頁
var $url="";//url地址頭
var $offset=0;
var $total='';
/**
* constructor構(gòu)造函數(shù)
*
* @param array $array['total'],$array['perpage'],$array['nowindex'],$array['url'],$array['ajax']...
*/
function Zend_Page($array)
{
if(is_array($array)){
if(!array_key_exists('total',$array))$this->error(__FUNCTION__,'need a param of total');
$total=intval($array['total']);
$perpage=(array_key_exists('perpage',$array))?intval($array['perpage']):10;
$nowindex=(array_key_exists('nowindex',$array))?intval($array['nowindex']):'';
$url=(array_key_exists('url',$array))?$array['url']:'';
}else{
$total=$array;
$perpage=10;
$nowindex='';
$url='';
}
if((!is_int($total))||($totalerror(__FUNCTION__,$total.' is not a positive integer!');
if((!is_int($perpage))||($perpageerror(__FUNCTION__,$perpage.' is not a positive integer!');
if(!empty($array['page_name']))$this->set('page_name',$array['page_name']);//設(shè)置pagename
$this->_set_nowindex($nowindex);//設(shè)置當(dāng)前頁
$this->_set_url($url);//設(shè)置鏈接地址
$this->totalpage=ceil($total/$perpage);
$this->total=$total;
$this->offset=($this->nowindex-1)*$perpage;
if(!empty($array['ajax']))$this->open_ajax($array['ajax']);//打開AJAX模式
}
/**
* 設(shè)定類中指定變量名的值,如果改變量不屬于這個(gè)類,將throw一個(gè)exception
*
* @param string $var
* @param string $value
*/
function set($var,$value)
{
if(in_array($var,get_object_vars($this)))
$this->$var=$value;
else {
$this->error(__FUNCTION__,$var." does not belong to PB_Page!");
}
}
/**
* 打開倒AJAX模式
*
* @param string $action 默認(rèn)ajax觸發(fā)的動(dòng)作。
*/
function open_ajax($action)
{
$this->is_ajax=true;
$this->ajax_action_name=$action;
}
/**
* 獲取顯示"下一頁"的代碼
*
* @param string $style
* @return string
*/
function next_page($style='')
{
if($this->nowindextotalpage){
return $this->_get_link($this->_get_url($this->nowindex+1),$this->next_page,$style);
}
return ''.$this->next_page.'';
}
/**
* 獲取顯示“上一頁”的代碼
*
* @param string $style
* @return string
*/
function pre_page($style='')
{
if($this->nowindex>1){
return $this->_get_link($this->_get_url($this->nowindex-1),$this->pre_page,$style);
}
return ''.$this->pre_page.'';
}
/**
* 獲取顯示“上十頁”的代碼
*
* @param string $style
* @return string
*/
function pre_ten_page($style='')
{
if(intval($this->nowindex/10)+1>1){
return $this->_get_link($this->_get_url(intval($this->nowindex/10)*10-5),$this->pre_ten_page,$style);
}
return ''.$this->pre_ten_page.'';
}
/**
* 獲取顯示"下十頁"的代碼
*
* @param string $style
* @return string
*/
function next_ten_page($style='')
{
if(intval($this->nowindex/10)
return $this->_get_link($this->_get_url((intval($this->nowindex/10)+1)*10+5),$this->next_ten_page,$style);
}
return ''.$this->next_ten_page.'';
}
/**
* 獲取顯示“首頁”的代碼
*
* @return string
*/
function first_page($style='')
{
if($this->nowindex==1){
return ''.$this->first_page.'';
}
return $this->_get_link($this->_get_url(1),$this->first_page,$style);
}
/**
* 獲取顯示“尾頁”的代碼
*
* @return string
*/
function last_page($style='')
{
if($this->nowindex==$this->totalpage){
return ''.$this->last_page.'';
}
return $this->_get_link($this->_get_url($this->totalpage),$this->last_page,$style);
}
function nowbar($style='',$nowindex_style='')
{
$plus=ceil($this->pagebarnum/2);
if($this->pagebarnum-$plus+$this->nowindex>$this->totalpage)$plus=($this->pagebarnum-$this->totalpage+$this->nowindex);
$begin=$this->nowindex-$plus+1;
$begin=($begin>=1)?$begin:1;
$return='';
for($i=$begin;$ipagebarnum;$i++)
{
if($itotalpage){
if($i!=$this->nowindex)
$return.=$this->_get_text($this->_get_link($this->_get_url($i),$i,$style));
else
$return.=$this->_get_text(''.$i.'');
}else{
break;
}
$return.="\n";
}
unset($begin);
return $return;
}
/**
* 獲取顯示跳轉(zhuǎn)按鈕的代碼
*
* @return string
*/
function select()
{
$return='';
return $return;
}
/**
* 獲取mysql 語句中l(wèi)imit需要的值
*
* @return string
*/
function offset()
{
return $this->offset;
}
/**
* 控制分頁顯示風(fēng)格(你可以增加相應(yīng)的風(fēng)格)
*
* @param int $mode
* @return string
*/
function show($mode=1,$url='')
{
switch ($mode)
{
case '1':
$this->next_page='下一頁';
$this->pre_page='上一頁';
return $this->pre_page().$this->nowbar().$this->next_page().'第'.$this->select().'頁';
break;
case '2':
$this->next_page='下一頁';
$this->pre_page='上一頁';
$this->first_page='首頁';
$this->last_page='尾頁';
return $this->first_page().$this->pre_page().'[第'.$this->nowindex.'頁]'.$this->next_page().$this->last_page().'第'.$this->select().'頁';
break;
case '3':
$this->next_page='下一頁';
$this->pre_page='上一頁';
$this->first_page='首頁';
$this->last_page='尾頁';
return $this->first_page().$this->pre_page().$this->next_page().$this->last_page();
break;
case '4':
$this->next_page='next';
$this->pre_page='last';
return $this->pre_page().$this->nowbar().$this->next_page();
break;
case '5':
return $this->pre_bar().$this->pre_page().$this->nowbar().$this->next_page().$this->next_bar();
break;
case '6':
//啟用了“上一頁”,“下一頁”,“最后一頁”??筛鶕?jù)情況啟用“第一頁”。
//$this->first_page='

$this->pre_page='

$this->next_page='

$this->last_page='最后一頁';
//return "
return "
break;
case '7':
$this->next_page='

$this->pre_page='

$this->first_page='

$this->last_page='

if($this->totalpage==0)
{$this->nowindex=0;}
return $this->first_page()."??".$this->pre_page()."??".$this->next_page()."??".$this->last_page()."??".$this->select();
break;
case '8':
//啟用了“上一頁”,“下一頁”,“最后一頁”??筛鶕?jù)情況啟用“第一頁”。
//$this->first_page='

$this->pre_page='

$this->next_page='

$this->last_page='最后一頁';
if($this->totalpage==0)
{$this->nowindex=0;}
//return "
return "
break;
}
}
/*----------------private function (私有方法)-----------------------------------------------------------*/
/**
* 設(shè)置url頭地址
* @param: String $url
* @return boolean
*/
function _set_url($url="")
{
if(!empty($url)){
//手動(dòng)設(shè)置
$this->url=$url.((stristr($url,'?'))?'&':'?').$this->page_name."=";
}else{
//自動(dòng)獲取
if(empty($_SERVER['QUERY_STRING'])){
//不存在QUERY_STRING時(shí)
$this->url=$_SERVER['REQUEST_URI']."?".$this->page_name."=";
}else{
//
if(stristr($_SERVER['QUERY_STRING'],$this->page_name.'=')){
//地址存在頁面參數(shù)
$this->url=str_replace($this->page_name.'='.$this->nowindex,'',$_SERVER['REQUEST_URI']);
$last=$this->url[strlen($this->url)-1];
if($last=='?'||$last=='&'){
$this->url.=$this->page_name."=";
}else{
$this->url.='&'.$this->page_name."=";
}
}else{
//
$this->url=$_SERVER['REQUEST_URI'].'&'.$this->page_name.'=';
}//end if
}//end if
}//end if
}
/**
* 設(shè)置當(dāng)前頁面
*
*/
function _set_nowindex($nowindex)
{
if(empty($nowindex)){
//系統(tǒng)獲取
if(isset($_GET[$this->page_name])){
$this->nowindex=intval($_GET[$this->page_name]);
}
}else{
//手動(dòng)設(shè)置
$this->nowindex=intval($nowindex);
}
}
/**
* 為指定的頁面返回地址值
*
* @param int $pageno
* @return string $url
*/
function _get_url($pageno=1)
{
return $this->url.$pageno;
}
/**
* 獲取分頁顯示文字,比如說默認(rèn)情況下_get_text('1')將返回[1]
*
* @param String $str
* @return string $url
*/
function _get_text($str)
{
return $this->format_left.$str.$this->format_right;
}
/**
* 獲取鏈接地址
*/
function _get_link($url,$text,$style=''){
$style=(empty($style))?'':'class="'.$style.'"';
if($this->is_ajax){
//如果是使用AJAX模式
return ''.$text.'';
}else{
return ''.$text.'';
}
}
/**
* 出錯(cuò)處理方式
*/
function error($function,$errormsg)
{
die('Error in file '.__FILE__.' ,Function '.$function.'() :'.$errormsg);
}
}
?>

Hei?e KI -Werkzeuge

Undress AI Tool
Ausziehbilder kostenlos

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

Hei?er Artikel

Hei?e Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Hei?e Themen

Die Methode, um die aktuelle Sitzungs -ID in PHP abzurufen, besteht darin, die Funktion seision_id () zu verwenden. Sie müssen jedoch Session_start () aufrufen, um sie erfolgreich zu erhalten. 1. CALL Session_Start (), um die Sitzung zu starten; 2. Verwenden Sie Session_id (), um die Sitzungs -ID zu lesen und eine Zeichenfolge auszugeben, die wie ABC123DEF456GHI789 ?hnelt; 3. Wenn die Rückgabe leer ist, prüfen Sie, ob Session_Start () fehlt, ob der Benutzer zum ersten Mal zugreift oder ob die Sitzung zerst?rt wird. V. Stellen Sie sicher, dass die Sitzung korrekt aktiviert ist und die ID erfolgreich erhalten werden kann.

Um Substrings aus PHP -Zeichenfolgen zu extrahieren, k?nnen Sie die Substr () -Funktion verwenden, die Syntax -Substr (String $ String, int $ start, int $ l?nge = null) ist, und wenn die L?nge nicht angegeben ist, wird sie am Ende abgefangen. Bei der Verarbeitung von Multi-Byte-Zeichen wie Chinesisch sollten Sie die Funktion mb_substr () verwenden, um verstümmelte Code zu vermeiden. Wenn Sie die Zeichenfolge nach einem bestimmten Trennzeichen abfangen müssen, k?nnen Sie exploit () oder substr () zum Implementieren verwenden, z. B. das Extrahieren von Dateinamenverl?ngerungen oder Dom?nennamen.

UnittestinginphpinvolvesverifikationIndividualCodeUnits ?hnliche Funktionen-SetupphpunitviaComposer, CreateTeTeTD-Verzeichnis und Konfigurationsthearrange-Assertpat, writestcasesFoughingthearrarroadandhpunit.xml.2), writestcasesflowingthearrrange

In PHP besteht die h?ufigste Methode darin, die Zeichenfolge mithilfe der Funktion exploit () in ein Array aufzuteilen. Diese Funktion unterteilt die Zeichenfolge in mehrere Teile durch den angegebenen Trennzeichen und gibt ein Array zurück. Die Syntax ist Exploit (Separator, String, Grenze), wobei der Trennzeichen der Trennzeichen ist, die Zeichenfolge ist die ursprüngliche Zeichenfolge und die Grenze ist ein optionaler Parameter, um die maximale Anzahl von Segmenten zu steuern. Zum Beispiel $ str = "Apple, Banane, Orange"; $ arr = explode (",", $ str); Das Ergebnis ist ["Apple", "Bana

JavaScript -Datentypen sind in primitive Typen und Referenztypen unterteilt. Zu den primitiven Typen geh?ren String, Anzahl, Boolesche, Null, undefiniertes und Symbol. Die Werte sind unver?nderlich und Kopien werden bei der Zuweisung von Werten kopiert, sodass sie sich nicht gegenseitig beeinflussen. Referenztypen wie Objekte, Arrays und Funktionen speichern Speicheradressen, und Variablen, die auf dasselbe Objekt zeigen, wirkt sich gegenseitig aus. Typeof und Instanz k?nnen verwendet werden, um die Typen zu bestimmen, aber auf die historischen Probleme der TypeOfnull zu achten. Das Verst?ndnis dieser beiden Arten von Unterschieden kann dazu beitragen, einen stabileren und zuverl?ssigeren Code zu schreiben.

STD :: CHRONO wird in C verwendet, um die Zeit zu verarbeiten, einschlie?lich des Erhaltens der aktuellen Zeit, der Messung der Ausführungszeit, der Betriebszeit und -dauer und der Formatierungsanalysezeit. 1. Verwenden Sie std :: chrono :: system_clock :: Now (), um die aktuelle Zeit zu erhalten, die in eine lesbare Zeichenfolge konvertiert werden kann, aber die Systemuhr ist jedoch m?glicherweise nicht eint?nig. 2. Verwenden Sie STD :: Chrono :: Steady_clock, um die Ausführungszeit zu messen, um die Monotonie zu gew?hrleisten, und umwandeln Sie sie durch Duration_cast in Millisekunden, Sekunden und andere Einheiten; 3. Zeitpunkt (Time_Point) und Dauer (Dauer) k?nnen interoperabel sein, aber die Aufmerksamkeit der Einheitenkompatibilit?t und der Uhr -Epoche (Epoche) sollte beachtet werden.

Um eine Sitzungsvariable an eine andere Seite zu übergeben, besteht der Schlüssel darin, die Sitzung korrekt zu starten und den gleichen $ _Session -Schlüsselnamen zu verwenden. 1. Bevor Sie Sitzungsvariablen für jede Seite verwenden, muss sie als Session_start () bezeichnet und vor dem Skript platziert werden. 2. Setzen Sie Sitzungsvariablen wie $ _Session ['Benutzername'] = 'Johndoe' auf der ersten Seite; 3. Nachdem Sie Session_start () auf einer anderen Seite aufgerufen haben, greifen Sie auf die Variablen über denselben Schlüsselnamen zu. 4. Stellen Sie sicher, dass Session_Start () auf jeder Seite aufgerufen wird, vermeiden Sie im Voraus, Inhalte auszugeben, und überprüfen Sie, ob der Sitzungsspeicher auf dem Server beschreibbar ist. 5. Verwenden Sie SES

ToaccessesvironmentvariableSinphp, useGetEnv () orthe _envSuperglobal.1.getenv ('var_name') ruftaspecificVariable.2. $ _ EN V ['var_name'] AccessesVariablesifvariables_OrderInphp.iniincludes "e" .setvariablesviacliwithvar = ValuePhpScript.php, Inapach
