[原创]基于jQuery的AJAX 之四 文章列表例子(PHP)
对于一般有些基础的人,可以说前几次课就等于是废话>_<不要骂我等你们看完了才说这话…但是这次课程就不一样了,我们进入了真正的网站开发,没关系不要怕,其实也非常简单。我们这次的任务就是要做一个基于JQuery AJAX的PHP文章列表的例子。效果就象我的网站,你可以先感受一下。(http://Www.Skiyo.Cn/)
效果是不是非常web2.0?接下来我们的任务就是一步一步完成它。
我们首先来写一个PHP的文章列表,由于我们课程主要不在此,所以我只把代码贴下。
- <?php
- header("Content-type: text/html;charset=GB2312");//输出编码,避免中文乱码
- header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
- header("Cache-Control: no-cache, must-revalidate"); //AJAX和缓存是死对头
- header("Pragma: no-cache");
- include "conn.php";
- require "function.php";
- $page=$_GET['page'];
- if (isset($page)) {
- settype($page,"integer");
- $pagesize=15;//每页显示条数
- $page ? ($limt=($page-1)*$pagesize) : $page=1;
- $count_result=mysql_query("select count(id) as count from tankme_article where kind='$kind'");
- $max=@mysql_fetch_array($count_result);
- $count=$max["count"];//统计记录条数
- $max_page=($count%$pagesize==0)? ($count/$pagesize):intval(($count/$pagesize+1));
- $max_page=intval($max_page);//强制类型转换
- $result=mysql_query("select * from tankme_article order by id DESC LIMIT $limt,$pagesize");
- while($myrow=@mysql_fetch_array($result)){
- $id=$myrow["id"];
- $id_count_result=mysql_query("select count(id) as id_count from tankme_contact where tankme_id=$id");
- $id_count_array=@mysql_fetch_array($id_count_result);
- $id_count=$id_count_array["id_count"];
- $title=$myrow["title"];
- $value=$myrow["value"];
- $time=$myrow["time"];
- $time=date("Y-m-d H:i:s",$time);
- $click=$myrow["click"];
- $total_votes=$myrow["total_votes"];
- $total_value=$myrow["total_value"];
- echo $title." ".$value." ".$time." ".$click."<hr>"; //输出文章列表
- }
- echo ajaxpage($max_page,$page,$pagesize,"ajaxarticle.php?kind=$kind"); //分页标签(下面提供)
- } else {
- echo "<script language='javascript'>alert('非法请求!!');</script>";
- echo "<script language='javascript'>location.href='index.php';</script>";
- }
- ?>
上面的那个分页标签函数
- function ajaxpage($page_num,$cur_page,$per_group,$base_url){ //分页函数
- $base_url .= strpos($base_url, '?') ? '&' : '?';
- $page_val = "";
- if ($page_num < 1) {
- return $page_val;
- } elseif($page_num == 1) {
- return $page_val = 1;
- }
- $group_ok = !(($page_num-1)%($per_group-1));
- //计算一共有多少组
- if($group_ok) {
- $group_num = ($page_num-1)/($per_group-1);
- } else {
- $group_num = ceil(($page_num-1)/($per_group-1));
- }
- //判断当前页是否为一组的最后一个
- $is_last_page = !(($cur_page-1)%($per_group-1));
- //计算当前在的组数
- if($is_last_page) {
- $cur_group = ($cur_page-1)/($per_group-1) + 1;
- } else {
- $cur_group = ceil(($cur_page-1)/($per_group-1));
- }
- //计算显示的起始页
- $from = ($cur_group - 1) * ($per_group-1) + 1;
- $from = $cur_group <= 1 ? 1 :$from;
- $to = $from + $per_group;
- $to = $to > $page_num ? $page_num + 1 : $to;
- for($a = $from; $a < $to; $a++){
- if( $a != $cur_page) {
- $page_val .= '<a href =javascript:dopage(\''.$base_url.'page='.$a.'\');>'.$a.'</a>';
- } else {
- $page_val .= '<span class="current">'.$a.'</span>';
- }
- }
- //上一页下一页首页尾页
- $next=$cur_page+1;
- $prev=$cur_page-1;
- if ($cur_page!=$page_num) {
- $page_val.='<a href =javascript:dopage(\''.$base_url.'page='.$next.'\');>Next</a>';
- $page_val .= '<a href =javascript:dopage(\''.$base_url.'page='.$page_num.'\');>'.'>>'.'</a>'; //尾页
- }
- if ($cur_page!=1) {
- $page_val = '<a href =javascript:dopage(\''.$base_url.'page='.$prev.'\');>Prev</a>'.$page_val;
- $page_val = '<a href =javascript:dopage(\''.$base_url.'page=1\');>'.'<<'.'</a>'.$page_val; //首页
- }
- return $page_val;
- }
如果大家能看懂更好,看不懂我也没办法,努力学好一门语言吧。是什么都无所谓,上面没有设计任何有关AJAX的东西,就是个输出文章列表,非常简单。
这个文件我们暂且叫ajaxarticle.php
还记得上次课程吗?就相当于容器里面的那个页面(2.html),只不过现在改成动态的而已。
好了,现在我们开始写主页面。
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
- <title>- Tank Me - by Jessica</title>
- <meta name="robots" content="all" />
- <meta name="author" content="jessica.dlq@gmail.com,Jessica" />
- <meta name="Copyright" content="Jessica CopyRight 2008" />
- <meta name="keywords"
- content="TankMe,Tank Me,Tank,MeJessica,Blog,Jessicas,designing,with,web,作品,个人作品,css,graphic,design,layout,usability,accessibility,w3c,w3,w3cn" />
- <meta name="description" content="- Tank Me -" />
- <script type="text/javascript" src="js/jquery.js"></script>
- <link rel="stylesheet" href="css/bg.css" type="text/css" />
- <link rel="stylesheet" href="css/article.css" type="text/css" />
- <link rel="stylesheet" href="css/LoadingStatus.css" type="text/css" />
- <title>无标题文档</title>
- <script type="text/javascript" src="js/jquery.js"></script>
- <script LANGUAGE="JavaScript">
- <!--
- //上节课的函数你还记得吗?
- $(function (){ //$(document).ready(function (){ 的简写
- dopage('ajaxarticle.php?page=1');//第一次打开页面时显示第一页内容
- });
- function dopage(ajaxurl){
- $('#LoadingStatus').show();
- $.ajax({url: ajaxurl,
- type: 'GET',
- dataType: 'html',
- timeout: 20000,
- error: function(){alert('error');$('#LoadingStatus').hide(500);
- },
- success: function(html){
- window.location="#article_md";
- $('#LoadingStatus').hide(500);
- $('#article').html(html);
- }
- });
- }
- //-->
- </script>
- </head>
- <body>
- <div id="top"><img src="images/top.png" width="750" height="180" /></div>
- <table width="100%" border="0" cellpadding="0" cellspacing="0">
- <tr>
- <td align="center">
- <a name="article_md" id="article_md"></a>
- <!-- 我们在这里设置一个锚点连接的原因是:由于文章列表可能会非常的长,这样我们就得把滚动栏拖到很下面,点〈下一页〉后,由于是AJAX的,所以用户看到的是下一页的后面的文章列表(我不知道怎么样说的更明白了,大家可以去掉试下-_-!)我们为了让用户点完下一页回到顶端,也就是第二页的文章列表开始,所以要设置这个东西-->
- <img src="images/hr.png" width="750" height="5" />
- <br />
- <div id="LoadingStatus"><img src="images/ajax-loader.gif"/></div> <!-- 等待层-->
- <table width="750" border="0" cellpadding="0" cellspacing="0">
- <tr>
- <td align="center">
- <div id="article">
- <!--显示文章列表层-->
- </div>
- 冀ICP备07500313号 Code by <b>Jessica</b>. Copyright © 2008-2009 <b>Jessica</b> All rights reserved.
- </td>
- </tr>
- </table>
- </td>
- </tr>
- </table>
- 如果不刷新这里的数字是不变的喔<?=rand(0, 999)?>
- </body>
- </html>
OK了。你现在可以运行一下了,注意因为使用了数据库。你需要有个表,关于数据库连接的我都没有写,你可以自己完成。
现在你可以把这个小网页搭建起来了,运行一下,看看是不是很AJAX呢??
在下节课中,我们还要更深一层,写一个AJAX的留言板,下节课的内容很重要喔!!别迟到喔!!
2 Comments to “ [原创]基于jQuery的AJAX 之四 文章列表例子(PHP) ”
Post comment
分类目录
- ActionScript (2)
- CSS (25)
- Java (3)
- JavaScript (41)
- PHP (108)
- 心情杂谈 (34)
- 收集整理 (77)
- 本站原创 (57)
最近文章
- 在sae中利用SaeFetchurl进行豆瓣的OAuth授权
- OAuth 1.0a与1.0协议的改进…
- 深入理解OAuth与豆瓣OAuth test
- include_path+__autoload与数组+__autoload的比较
- 将google ssl设置为IE8的默认搜索引擎..
- 我们来做一个会呼吸的菜单吧!!
- 在编译php-fpm0.6的时候需要注意的一些问题
- 使用PHP将大文件导入到数据库中..
- 关于用PHP调用WebService中参数为complexType的问题
- 神奇的两次按位非运算符
- 百路推免费短网址服务..首创”收藏夹获取短网址”..
- 哥学社正式上线..
- jQuery中getJSON跨域原理详解
- Web辅助工具条(原名:河蟹工具条CrabBar)0.1发布
- 腾讯微博PC端发图教程
近期评论
- 老飞的小窝 在 jQuery中getJSON跨域原理详解 上的评论
- Jackie.Hamos 在 将google ssl设置为IE8的默认搜索引擎.. 上的评论
- Elmer Zhang 在 在sae中利用SaeFetchurl进行豆瓣的OAuth授权 上的评论
- 茶叶蛋 在 一个PHP+AJAX留言板的完整例子.非常简单! 上的评论
- 9527 在 我们为什么要抛弃模板引擎?? 上的评论
- hikurasai 在 Flash TagCloud中文版. 上的评论
- lx 在 PHP上传进度条深度解析 上的评论
- lx 在 使用PHP将大文件导入到数据库中.. 上的评论
- nflauthentic 在 哥学社正式上线.. 上的评论
- uggsale 在 有三个主题的CSS导航菜单 上的评论
文章归档
- 2010 年八月 (4)
- 2010 年七月 (3)
- 2010 年六月 (4)
- 2010 年五月 (2)
- 2010 年四月 (9)
- 2010 年三月 (12)
- 2010 年二月 (1)
- 2010 年一月 (3)
- 2009 年十二月 (2)
- 2009 年十一月 (3)
- 2009 年十月 (3)
- 2009 年九月 (5)
- 2009 年八月 (4)
- 2009 年七月 (6)
- 2009 年六月 (8)
- 2009 年五月 (8)
- 2009 年四月 (16)
- 2009 年三月 (19)
- 2009 年二月 (22)
- 2009 年一月 (20)
- 2008 年十二月 (38)
- 2008 年十一月 (22)
- 2008 年十月 (7)
- 2008 年九月 (3)
- 2008 年八月 (24)
标签
.net
AJAX
button
Comet
CSS
Discuz!
DIV+CSS
Flash
Form
Google
HTML编辑器
IE8
Java
JavaScript
jQuery
JSP
md5
MySQLReback
OAuth
Oracle
PHP
php-fpm
PNG
Punny
SkiyoTabs
tab
TagCloud
Vista
Web2.0
Windows7
上传
加密
图标
本站原创
模板
模板引擎
源码
登录
短网址
石家庄
算法
类
编译
面向对象
魔术方法

Jessica

收藏了,可能用得著
deleteme