PHP+Ajax 实现分页技术的参考范例

基于php和ajax的分页技术代码,其实ajax的分页很容易想到该怎么做,这里主要是给大家梳理一下,以后开发的时候留作参考。

下面有两个php文件,一个是sn_inq.php,另一个是sn_show.php,前一个php文件调用后一个php文件,实现ajax分页,运行sn_inq即可实现效果,不过得修改数据库哦。具体代码如下:红色标注的地方要特别注意修改哦!

我的数据库名是inv,表名是sn,字段有:sn_id,sn_plant,sn_sales,sn_act,sn_type,sn_sts.....

1.sn_inq.php

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

SN to
''; ?>

2.sn_show.php:

''.iconv(''gb2312'',''gb2312'',''首页'').'' ''; pagenav.='' ''.iconv(''gb2312'',''gb2312'',''上一页'').'' ''; }else{ pagenav.="".iconv(''gb2312'',''gb2312'',''首页'').""." "; pagenav.="".iconv(''gb2312'',''gb2312'',''上一页'').""; } if(nextpg){ pagenav.='' ''.iconv(''gb2312'',''gb2312'',''下一页'').'' ''; pagenav.='' ''.iconv(''gb2312'',''gb2312'',''尾页'').'' ''; }else{ pagenav.="".iconv(''gb2312'',''gb2312'',''下一页'').""." "; pagenav.="".iconv(''gb2312'',''gb2312'',''尾页'').""." "; } pagenav.=''''.iconv(''gb2312'',''gb2312'',''共 '') . pagenum .'' ''.iconv(''gb2312'',''gb2312'',''页''); for(h=(page-middle<1?1:page-middle);h<=(page+middle>pagenum?pagenum:page+middle);h++){ if(h==page){ pagenav.=" h "; }else{ pagenav.="  ".iconv(''gb2312'',''gb2312'',h)."  "; } } pagenav.="    "; pagenav.=iconv(''gb2312'',''gb2312'',''转到 ''); pagenav.=""; for (i = 1; i <= pagenum;i++){ if(page == i){ pagenav.= "".i.""; }else{ pagenav.= "".i.""; } } pagenav.=""; pagenav.="页"; return pagenav; } //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 '''';

echo '''';
echo ''<![CDATA['';
echo ''

LIST ''; num = offset; for (i = 0; i < sn_num; i++) { sn_row = mysql_fetch_array(sn_res); if (i % 2 == 0) { echo ''''; }else{ echo ''''; } echo''''; num++; } echo ''
No SN Plant Sales Act Type Status Release Date Approve Date Reject Date Cancel Date Close Date
''.(num+1).'' ''.sn_row\[''sn_id''\].'' ''.sn_row\[''sn_plant''\].'' ''.sn_row\[''sn_sales''\].'' ''.sn_row\[''sn_act''\].'' ''.sn_row\[''sn_type''\].'' ''.sn_row\[''sn_sts''\].'' ''.substr(sn_row\[''sn_rel_date''\],0,10).'' ''.substr(sn_row\[''sn_apv_date''\],0,10).'' ''.substr(sn_row\[''sn_rej_date''\],0,10).'' ''.substr(sn_row\[''sn_can_date''\],0,10).'' ''.substr(sn_row\[''sn_cls_date''\],0,10).''
''; echo ''
''.pageshow.''
''; echo ''''; echo ''\]\]>''; echo ''''; }else{ echo ''find nothing''; }

?>