本文实例讲述了PHP+jQuery实现滚屏无刷新动态加载数据功能。分享给大家供大家参考,具体如下:
index.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
|
<?php
require_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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
|
-- 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.13
SET 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 接收请求页面
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
<?php
require_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 数据库配置文件
1
2
3
4
5
6
7
8
9
10
11
|
<?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程序设计有所帮助。