本文实例讲述了PHP+jQuery实现滚屏无刷新动态加载数据功能。分享给大家供大家参考,具体如下:
index.php
<?phprequire_once('connect.php'); //连接数据库$user = array('demo1','demo2','demo3','demo3','<de></de>mo4'); //模拟了几个用户?><!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" xml:lang="en"><head> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" /> <title>滚屏加载--无刷新动态加载数据技术的应用</title> <style type="text/css"> #container{margin:10px auto;width: 660px; border: 1px solid #999;} .single_item{padding: 20px; border-bottom: 1px dotted #d3d3d3;} .author{position: absolute; left: 0px; font-weight:bold; color:#39f} .date{position: absolute; right: 0px; color:#999} .content{line-height:20px; word-break: break-all;} .element_head{width: 100%; position: relative; height: 20px;} .nodata{display:none; height:32px; line-height:32px; text-align:center; color:#999; font-size:14px} </style> <script type="text/javascript" src="jquery-1.8.3.min.js"></script> //需要引入jquery</head><body> <p class="one" style="margin:20px">提示:使用滚动或拉动滚动条向下看。</p> <div id="container"> <?php $query=mysqli_query($link, "select * from say order by id desc limit 0,15"); while ($row=mysqli_fetch_array($query, MYSQLI_ASSOC)) { ?> <div class="single_item"> <div class="element_head"> <div class="date"><?php echo date('m-d H:i',$row['addtime']);?></div> <div class="author"><?php echo $user[$row['userid']];?></div> </div> <div class="content"><?php echo $row['content'];?></div> </div> <?php } ?> </div> <div class="nodata"></div></body><script type="text/javascript">$(function(){ var winH = $(window).height(); //页面可视区域高度 var i = 1;//设置当前页数 $(window).scroll(function () { var pageH = $(document.body).height(); var scrollT = $(window).scrollTop(); //滚动条top var aa = (pageH-winH-scrollT)/winH; if(aa<0.02){ $.getJSON("result.php",{page:i},function(json){ if(json){ var str = ""; $.each(json,function(index,array){ var str = "<div class=/"single_item/"><div class=/"element_head/">"; var str = str + "<div class=/"date/">"+array['date']+"</div>"; var str = str + "<div class=/"author/">"+array['author']+"</div>"; var str = str + "</div><div class=/"content/">"+array['content']+"</div></div>"; $("#container").append(str); }); i++; }else{ $(".nodata").show().html("别滚动了,已经到底了。。。"); return false; } }); } });});</script></html>
ajax_demo.sql
-- phpMyAdmin SQL Dump-- version 3.5.2.2-- http://www.phpmyadmin.net---- 主机: localhost-- 生成日期: 2015 年 01 月 18 日 15:56-- 服务器版本: 5.1.46-community-- PHP 版本: 5.2.13SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";SET time_zone = "+00:00";/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;/*!40101 SET NAMES utf8 */;---- 数据库: `demo`---- ------------------------------------------------------------ 表的结构 `say`--CREATE TABLE IF NOT EXISTS `say` ( `id` int(11) NOT NULL AUTO_INCREMENT, `userid` int(11) NOT NULL DEFAULT '0', `content` varchar(200) NOT NULL, `addtime` int(10) NOT NULL, PRIMARY KEY (`id`)) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=63 ;---- 转存表中的数据 `say`--INSERT INTO `say` (`id`, `userid`, `content`, `addtime`) VALUES(1, 0, '爱爱爱', 1421332482),(2, 1, '爱爱爱', 1421332482),(3, 0, '爱爱爱', 1421332482),(4, 1, '爱爱爱', 1421332482),(5, 0, '爱爱爱', 1421332482),(6, 0, '爱爱爱', 1421332482),(7, 0, '爱爱爱', 1421332482),(8, 2, '爱爱爱', 1421332482),(9, 0, '爱爱爱', 1421332482),(10, 0, '爱爱爱', 1421332482),(11, 0, '爱爱爱', 1421332482),(12, 0, '爱爱爱', 1421332482),(13, 0, '爱爱爱', 1421332482),(14, 0, '爱爱爱', 1421332482),(15, 0, '爱爱爱', 1421332482),(16, 0, '爱爱爱', 1421332482),(17, 0, '爱爱爱', 1421332482),(18, 0, '爱爱爱', 1421332482),(19, 0, '爱爱爱', 1421332482),(20, 0, '爱爱爱', 1421332482),(21, 0, '爱爱爱', 1421332482),(22, 0, '爱爱爱', 1421332482),(23, 0, '爱爱爱', 1421332482),(24, 0, '爱爱爱', 1421332482),(25, 0, '爱爱爱', 1421332482),(26, 0, '2222', 1421333156),(27, 0, '2222', 1421333159),(28, 0, '2222', 1421333161),(29, 0, '2222', 1421333162),(30, 0, '2222', 1421333164),(31, 0, '2222', 1421333165),(32, 0, '2222', 1421333167),(33, 0, '2222', 1421333168),(34, 0, '2222', 1421333169),(35, 0, '2222', 1421333170),(36, 0, '2222', 1421333172),(37, 0, '2222', 1421333173),(38, 0, '2222', 1421333175),(39, 0, '2222', 1421333176),(40, 0, '2222', 1421333177),(41, 0, '2222', 1421333178),(42, 0, '2222', 1421333179),(43, 0, '2222', 1421333181),(44, 0, '2222', 1421333182),(45, 0, '2222', 1421333183),(46, 0, '2222', 1421333184),(47, 0, '2222', 1421333293),(48, 0, '2222', 1421333295),(49, 0, '2222', 1421333296),(50, 0, '2222', 1421333297),(51, 0, '2222', 1421333298),(52, 0, '2222', 1421333299),(53, 0, '2222', 1421333300),(54, 0, '2222', 1421333302),(55, 0, '2222', 1421333303),(56, 0, '2222', 1421333304),(57, 0, '2222', 1421333305),(58, 0, '2222', 1421333306),(59, 0, '2222', 1421333308),(60, 0, '2222', 1421333309),(61, 0, '2222', 1421333310),(62, 0, '2222', 1421333311);/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
result.php 接收请求页面
<?phprequire_once('connect.php'); //连接数据库$user = array('demo1','demo2','demo3','demo3','demo4');$page = intval($_GET['page']); //获取请求的页数$start = $page*15;$query=mysqli_query($link, "select * from say order by id desc limit $start,15");/* while ($row=mysqli_fetch_array($query)) { $arr[] = array( 'content'=>$row['content'], 'author'=>$user[$row['userid']], 'date'=>date('m-d H:i',$row['addtime']) );} */if($query){ while ($row=mysqli_fetch_array($query)) { $arr[] = array( 'content'=>$row['content'], 'author'=>$user[$row['userid']], 'date'=>date('m-d H:i',$row['addtime']) ); }}if(!empty($arr)){ echo json_encode($arr); //转换为json数据输出}//echo json_encode($arr); //转换为json数据输出?>
connect.php 数据库配置文件
<?php$host="localhost";$db_user="root";$db_pass="admin";$db_name="ajax_demo";$timezone="Asia/Shanghai";$link=mysqli_connect($host,$db_user,$db_pass);mysqli_select_db($link, $db_name);mysqli_query($link, "SET names UTF8");header("Content-Type: text/html; charset=utf-8");?>
希望本文所述对大家PHP程序设计有所帮助。
新闻热点
疑难解答
图片精选