当前位置:首页 >> 互联网 >>

PHP Ajax 实现分页技术-PHP编程教程

PHP+Ajax 实现分页技术-PHP 编程教程.txt 世上最珍贵的不是永远得不到或已经得到的,而 是你已经得到并且随时都有可能失去的东西!爱情是灯,友情是影子。灯灭时,你会发现周 围都是影子。朋友,是在最后可以给你力量的人。基于 php 和 ajax 的分页技术代码,下面有 两个 php 文件, 一个是 sn_inq.php, 另一个是 sn_show.php, 前一个 php 文件调用后一个 php 文件,实现 ajax 分页,运行 sn_inq 即可实现效果,不过得修改数据库哦。具体代码如下: 红色标注的地方要特别注意修改哦!

我 的 数 据 库 名 是 inv , 表 名 是 sn_id,sn_plant,sn_sales,sn_act,sn_type,sn_sts.....

sn











1.sn_inq.php

//getFormValue 用于获取表单中所有输入控件的值,并将输入值组成一个字符串传到服务 器。

<script type="text/javascript"> function getFormValue(form){ var str=''; var ft,fv; for (var i=0; i<form.elements.length; i++){ fv = form.elements[i]; ft = fv.type.toLowerCase(); switch(ft){ case 'select-one': str+=fv.name+'='+escape(fv.value)+'&'; break; case 'radio': if (fv.checked){ str+=fv.name+'='+escape(fv.value)+'&'; } break; case 'checkbox': if (fv.checked){ str+=fv.name+'='+escape(fv.value)+'&'; } break; case 'text': str+=fv.name+'='+escape(fv.value)+'&'; break; case 'password': str+=fv.name+'='+escape(fv.value)+'&'; break; case 'hidden': str+=fv.name+'='+escape(fv.value)+'&';

break; case 'textarea': str+=fv.name+'='+escape(fv.value)+'&'; break; default: break; } } return str.split(/\s/).join('') }

//showcomment(page) 用于显示分页数据, 被查询按钮 onclick 事件调用, url 为后台处理 数据并输出 XML 格式数据的文件 url。

function showcomment(page) { var x = new Ajax('statusid', 'XML'); url = 'sn_show.php?page='+page+'&'+getFormValue(document.form1);

x.get(url , function(s) { if(s.lastChild){ getbyid("show").innerHTML = "Loading……"; getbyid("show").innerHTML = s.lastChild.firstChild.nodeValue; removeLoading(document.getElementById("show")); } else{ document.form1.submit(); } }); }

//displayLoading 用于显示 Loading,提示用户等待

function displayLoading(element) { var image = document.createElement("img"); image.setAttribute("src","progressbar.gif"); image.setAttribute("title","loading..."); var text = document.createTextNode("loading……"); element.appendChild(image); element.appendChild(text); }

//removeLoading 用于去掉 Loading

function removeLoading(element){ var image = element.getElementsByTagName("img"); for(var i=0;i<image.length;i++){ element.removeChild(image[i]); } }

//ajax

function Ajax(statusId, recvType) { var aj = new Object(); displayLoading(document.getElementById("show")); var clientHeight = scrollTop = 0; if(navigator.userAgent.toLowerCase().indexOf('opera') > -1) { clientHeight = document.body.clientHeight; scrollTop = document.body.scrollTop; } else { clientHeight = document.documentElement.clientHeight; scrollTop = document.documentElement.scrollTop; } if(document.getElementById(statusId)) { aj.statusId = document.getElementById(statusId); document.getElementById(statusId).style.top = 10+"px"; } else { var divElement = document.createElement("DIV"); divElement.id = "xspace-tipDiv"; divElement.className = "xspace-ajaxdiv"; divElement.style.cssText = "width:200px; height:40px; line-height: 40px; text-align: center;"; divElement.style.left = 10+"px"; divElement.style.top = 10+"px";//(clientHeight +scrollTop - 60) divElement.id = statusId; document.body.appendChild(divElement); aj.statusId = divElement; } aj.targetUrl = ''; aj.sendString = ''; aj.recvType = recvType ? recvType : 'HTML';//HTML XML aj.resultHandle = null; aj.createXMLHttpRequest = function() { var request = false; if(window.XMLHttpRequest) { request = new XMLHttpRequest();

if(request.overrideMimeType) { request.overrideMimeType('text/xml'); } } else if(window.ActiveXObject) { var versions = ['Microsoft.XMLHTTP', 'MSXML.XMLHTTP', 'Microsoft.XMLHTTP', 'Msxml2.XMLHTTP.7.0', 'Msxml2.XMLHTTP.6.0', 'Msxml2.XMLHTTP.5.0', 'Msxml2.XMLHTTP.4.0', 'MSXML2.XMLHTTP.3.0', 'MSXML2.XMLHTTP']; for(var i=0; i<versions.length; i++) { try { request = new ActiveXObject(versions[i]); if(request) { return request; } } catch(e) { //alert(e.message); } } } return request; } aj.XMLHttpRequest = aj.createXMLHttpRequest(); aj.processHandle = function() { aj.statusId.style.display = ''; if(aj.XMLHttpRequest.readyState == 4) { if(aj.XMLHttpRequest.status == 200) { if(aj.recvType == 'HTML') { aj.resultHandle(aj.XMLHttpRequest.responseText); } else if(aj.recvType == 'XML') { aj.resultHandle(aj.XMLHttpRequest.responseXML); } aj.statusId.style.display = 'none'; } else { aj.statusId.innerHTML = xml_http_load_failed; } } }

aj.get = function(targetUrl, resultHandle) { aj.targetUrl = targetUrl; aj.XMLHttpRequest.onreadystatechange = aj.processHandle; aj.resultHandle = resultHandle; if(window.XMLHttpRequest) { aj.XMLHttpRequest.open('GET', aj.targetUrl); aj.XMLHttpRequest.send(null);

} else { aj.XMLHttpRequest.open("GET", targetUrl, true); aj.XMLHttpRequest.send(); } }

aj.post = function(targetUrl, sendString, resultHandle) { aj.targetUrl = targetUrl; aj.sendString = sendString; aj.XMLHttpRequest.onreadystatechange = aj.processHandle; aj.resultHandle = resultHandle; aj.XMLHttpRequest.open('POST', targetUrl); aj.XMLHttpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); aj.XMLHttpRequest.send(aj.sendString); } return aj; }

function getbyid(id) { if (document.getElementById) { return document.getElementById(id); } else if (document.all) { return document.all[id]; } else if (document.layers) { return document.layers[id]; } else { return null; } } </script>

<?php

//注意:此处如果有 filesedset 的话,form 表单一定要放在 fieldset 里面,否则出错。 echo '<form name="form1" action="" method="post"> <table cellpadding="0" cellspacing="1"> <tr> <th class="criteria">SN</th> <td> <input type="text" name="sn_id_1" value="'._POST['sn_id_1'].'" size="16" maxlength="8"/> to <input type="text" name="sn_id_2" value="'._POST['sn_id_2'].'" size="16" maxlength="8"/>

<input type="button" name="sn_submit" value="Search" onClick="showcomment(1)"/> </td> </tr> </table> </form> <div id="show"></div>';

?>

2.sn_show.php:

<?php //page function function showpage(total){ global page,pagenav,middle,num,pagenum,offset,prepg,nextpg; //获取 page=18 中的 page 的值,假如不存在 page,那么页数就是 1。 page=isset(_REQUEST['page'])?intval(_REQUEST['page']):1; //每层分页条显示 4 个分页连接 middle = '4'; //每页显示 10 条数据 num=10; //获得总页数,也是最后一页 pagenum=ceil(total/num); //获得首页 page=min(pagenum,page); //上一页 prepg=page-1; //下一页 nextpg=(page==pagenum ? 0 : page+1); offset=(page-1)*num;

if(pagenum<=1) return false;

if(prepg){ pagenav.=' <a href="javascript : ;" onclick="javascript showcomment(1);">'.iconv('gb2312','gb2312','首页').'</a> '; pagenav.=' <a href="javascript : ;" onclick="javascript showcomment('.prepg.');">'.iconv('gb2312','gb2312','上一页').'</a> '; }else{ pagenav.="<font color='gray'>".iconv('gb2312','gb2312',' 首 ')."</font>"."&nbsp"; pagenav.="<font color='gray'>".iconv('gb2312','gb2312','上一页')."</font>"; }







if(nextpg){ pagenav.=' <a href="javascript : ;" onclick="javascript showcomment('.nextpg.');">'.iconv('gb2312','gb2312','下一页').'</a> '; pagenav.=' <a href="javascript : ;" onclick="javascript showcomment('.pagenum.');">'.iconv('gb2312','gb2312','尾页').'</a> '; }else{ pagenav.="<font color='gray'>".iconv('gb2312','gb2312',' 下 一 ')."</font>"."&nbsp"; pagenav.="<font color='gray'>".iconv('gb2312','gb2312',' 尾 ')."</font>"."&nbsp"; }









pagenav.='</select>'.iconv('gb2312','gb2312',' 共 ') . pagenum .'&nbsp'.iconv('gb2312','gb2312','页'); for(h=(page-middle<1?1:page-middle);h<=(page+middle>pagenum?pagenum:page+middle) ;h++){ if(h==page){ pagenav.="<b> h </b>"; }else{ pagenav.="&nbsp;&nbsp;<a href=\"javascript : showcomment(".h.");\">".iconv('gb2312','gb2312',h)."</a>&nbsp;&nbsp;"; } }

pagenav.="&nbsp;&nbsp;&nbsp;&nbsp;"; pagenav.=iconv('gb2312','gb2312','转到 ');

pagenav.="<select id='JumpSelect' name='NowPage' onchange=\"showcomment(this.value);\">"; for (i = 1; i <= pagenum;i++){ if(page == i){ pagenav.= "<option value='".i."' selected>".i."</option>"; }else{ pagenav.= "<option value='".i."' >".i."</option>"; } } pagenav.="</select>"; pagenav.="页"; return pagenav; }

size='1'

//connect to database function db_link()

{ access_id = "root"; db_name = "inv"; @ db = mysql_connect('localhost', access_id, '831025') or die("Could not connect to database. Please contact with IT supporting team ASAP."); mysql_query("SET NAMES 'GBK'"); mysql_select_db(db_name); return db; } link = db_link();

//get inquiry criteria,用 POST 取得数据也行 sn_id_1 = _REQUEST['sn_id_1']; sn_id_2 = _REQUEST['sn_id_2'];

//inquiry total pages sn_sql = "SELECT * FROM sn WHERE 1 "; if (sn_id_1 != ''){ sn_sql .= "AND sn_id >= '".sn_id_1."' "; } if (sn_id_2 != ''){ sn_sql .= "AND sn_id <= '".sn_id_2."' "; } sn_sql .= "ORDER BY sn_id DESC ";

sn_res = mysql_query(sn_sql); total = mysql_num_rows(sn_res);

//show page pageshow = showpage(total);

//inquiry current page sn_sql .= " limit offset,num"; sn_res = mysql_query(sn_sql); sn_num = mysql_num_rows(sn_res);

//output inquiry result as XML header("Content-Type: text/xml"); if(total > 0){ echo '<?xml version="1.0" encoding="gb2312"?>'; echo '<root>'; echo '<![CDATA['; echo '<fieldset class="inquiry"> <legend>LIST</legend>

<table class="list"> <tr> <th class="header">No</th> <th class="header">SN</th> <th class="header">Plant</th> <th class="header">Sales</th> <th class="header">Act</th> <th class="header">Type</th> <th class="header">Status</th> <th class="header">Release Date</th> <th class="header">Approve Date</th> <th class="header">Reject Date</th> <th class="header">Cancel Date</th> <th class="header">Close Date</th> </tr>'; num = offset; for (i = 0; i < sn_num; i++) { sn_row = mysql_fetch_array(sn_res); if (i % 2 == 0) { echo '<tr class="even" style="cursor:hand" >'; }else{ echo '<tr class="odd" style="cursor:hand" >'; } echo'<td class="list center">'.(num+1).'</td> <td class="list right blue">'.sn_row['sn_id'].'</td> <td class="list center">'.sn_row['sn_plant'].'</td> <td class="list right">'.sn_row['sn_sales'].'</td> <td class="list center red">'.sn_row['sn_act'].'</td> <td class="list center">'.sn_row['sn_type'].'</td> <td class="list center">'.sn_row['sn_sts'].'</td> <td class="list left">'.substr(sn_row['sn_rel_date'],0,10).'</td> <td class="list left">'.substr(sn_row['sn_apv_date'],0,10).'</td> <td class="list left">'.substr(sn_row['sn_rej_date'],0,10).'</td> <td class="list left">'.substr(sn_row['sn_can_date'],0,10).'</td> <td class="list left">'.substr(sn_row['sn_cls_date'],0,10).'</td> </tr>'; num++; } echo '</table>'; echo '<div>'.pageshow.'</div>'; echo '</fieldset>'; echo ']]>'; echo '</root>'; }else{

echo 'find nothing'; }

?>


相关文章:
PHP Ajax 实现分页技术-PHP编程教程.doc
PHP+Ajax 实现分页技术-PHP 编程教程.txt 世上最珍贵的不是永远得
基于Ajax和PHP数据分页的实现.pdf
W曲系统经常会遇到大量的数据分页显示问题,传统的分页技术在提取数据时用户等待时间较长,利用AjaX技术结合PHP语言开发的W曲系统在实现大量数据分页显示时,不需重载...
基于PHP_MySql_Ajax的分页技术方案.pdf
科技信息 计算机与网络 基于 PHP+MySql+Ajax分页技术方案天津工业大学 苏厚雄...四、 编程实现 由于代码实现篇幅较长, 这里只给出核心方法的实现 page.php<?...
PHP 一个简单但效果甚好AJAX分页实例.doc
欢迎登录清源教育官网 www.tsingyuan.cn 查看更多视频教程 PHP 一个简单但效果甚好AJAX分页实例 Ajax分页已经成为所有现代web应用程序设计的基本要求。 这篇PHP教程...
使用PHP+JQuery+Ajax分页的实现.pdf
使用PHP+JQuery+Ajax分页实现_互联网_IT/计算机_专业资料。使用 PHP+JQuery+Ajax 分页实现本篇文章小编将为大家介绍,使用 PHP+JQuery+Ajax 分页实现。需要...
php分页代码超强悍,php经典分页代码,php分页,php怎么实....doc
php编程语言分页代码举例... 4页 1下载券 喜欢此文档的还喜欢 php实现简单的分页功能 暂无评价 6页 免费 PHP Ajax 实现分页技术-... 暂无评价 10页 免费...
PHP Web程序设计与Ajax技术之PHP文件访问技术_图文.ppt
2014年1月 ISBN:9787302344735 第6章 PHP文件 访问技术 6.1 文件访问技术 ? ...PHP+Ajax 实现分页技术-... 4页 免费 ajaxphp web开发01 16页 1下载...
PHP Web程序设计与Ajax技术之PHP程序开发概述_图文.ppt
PHP Web程序设计与Ajax技术PHP程序开发概述_计算机软件及应用_IT/计算机_专业资料。PHP Web程序设计 与Ajax技术 唐四薪清华大学出版社 主编 2014年1月 ISBN:...
PHP Web程序设计与Ajax技术之Ajax数据库_图文.ppt
PHP Web程序设计与Ajax技术Ajax数据库_计算机软件及应用_IT/计算机_专业资料。...无刷新情况下对结果集进行分页 10.1 以Ajax方式显示数据 ? 原理:在静态页中...
基于PHP分页技术实现记录集的分栏显示_图文.pdf
电脑编程技巧与维护 基于PHP分页技术实现记录集的分栏显示徐光迎(中山职业技术学院,中山528404) 摘要:在Web应用程序开发中,为了基于分页技术实现记录集的分栏显示,应该...
PHP分页原理详解(我自己的笔记和理解).doc
根据PHP100视频第13讲分页原理,但是里面的代码写的有点难懂,而且张老师也没怎么讲解代码,这篇文档是我精心编写的关于分页原理的教程,代码都有解释! ...
使用PHP和jQuery制作分页和表格.doc
使用PHP和jQuery制作分页和表格_计算机软件及应用_IT...[lastItemNumber] => 20 Zend Framework 的开发...‘#results’, ajaxResponseJson, ‘remove’)处理...
PHP+Ajax无刷新带分页新闻评论系统.pdf
PHP+Ajax无刷新带分页新闻评论系统_电脑基础知识_IT/计算机_专业资料。Ajax 新闻...PHP+Ajax 实现分页技术-... 4页 免费 ajax无刷新分页 5页 1下载券 thin...
4Web交互编程_《PHP Web程序设计与Ajax技术》_图文.ppt
4Web交互编程_《PHP Web程序设计与Ajax技术》_计算机软件及应用_IT/计算机_专业资料。_《PHP Web程序设计与Ajax技术PHP Web程序设计 与Ajax技术 唐四薪清华...
PHP实现分页跳转页面功能.doc
PHP实现分页跳转页面功能_IT/计算机_专业资料。PHP实现分页跳转页面功能,完全能用 PHP code 栏目管理...
PHP分页技术,内容较多,分成上一页下一页.doc
PHP分页技术,内容较多,分成上一页下一页_计算机软件及应用_IT/计算机_专业资料...php分页功能 4页 免费 PHP+Ajax 实现分页技术-... 4页 免费 喜欢...
一种基于Ajax技术的分页方法_论文.pdf
原理,然后给出了一个使用Ajax技术进行分页显示的实例...基于AjaxPHP数据分页的... 242人阅读 3页 ...Ajax课程教学方法研究与... 19人阅读 3页 1...
基于jquery,php实现AJAX长轮询(LongPoll).doc
基于jquery,php实现AJAX长轮询(LongPoll)_IT/计算机_专
php分页类及使用方法.doc
php分页类及使用方法_计算机软件及应用_IT/计算机_专业资料。php分页类逻辑说明,...//对当前页码进行验证 ($this->nowPageNum>$this->allPageNum && $this->...
基于AJAX技术实现无刷新分页_论文.pdf
基于AJAX技术实现无刷新分页 - 网络天地 ? Network World 贯