帝国CMS封装的ajax加载信息框架代码
2020-04-10 站长 站长日志
帝国CMS通用封装的ajax加载信息框架代码,改改可以应用到任何地方。
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"
xml:lang
=
"en"
>
<
head
>
<
meta
http-equiv
=
"Content-Type"
content
=
"text/html;charset=UTF-8"
>
<
title
>Document</
title
>
<
script
src
=
"/ajax/jquery-1.11.2.min.js"
type
=
"text/javascript"
></
script
>
<
script
src
=
"/ajax/loadNews.js"
type
=
"text/javascript"
></
script
>
<
style
type
=
"text/css"
>
li{
height: 40px;
line-height: 40px;
}
</
style
>
</
head
>
<
body
>
<
div
id
=
"html"
></
div
>
<
div
><
button
id
=
"click"
>点击加载更多</
button
></
div
>
</
body
>
</
html>
js代码(
function
($) {
$.load_news =
function
(initdata, ajax_offset){
window.ajax_offset = ajax_offset;
var
ajaxutl =
'/ajax/result.php'
;
var
init_data = {
limit : 0,
offset : window.ajax_offset,
tbname :
''
,
classid : 0,
order :
''
,
dom :
''
,
click_dom :
''
}
init_data = $.extend({}, init_data, initdata);
var
result_lang = {
data_0 :
'<font color="red" size="+1">暂无数据</font>'
,
tbname_not :
'没有此<a href="http://www.11px.cn/tags/sjb/" target="_blank">数据表</a>'
}
$.post(
ajaxutl,
init_data,
function
(data){
var
data = data;
if
(data.status==
'data_0'
)
{
// 没有数据了~~~~
$(init_data.dom).append(result_lang[data.status]);
// 移除click
$(init_data.click_dom).remove();
// 设置按钮
//$(init_data.click_dom).attr('disabled', 'disabled');
return
false
;
}
$(init_data.dom).append(data.html);
window.ajax_offset =data.offset;
},
'json'
);
}
})(jQuery);
$(
function
(){
$(
"#click"
).click(
function
(){
$.load_news({
limit : 20,
// 每次查询多少条
tbname :
'news'
,
// <a href="http://www.11px.cn/tags/sjb/" target="_blank">数据表</a>名称
classid : 3,
// 栏目ID
order :
'desc'
,
// 排序
dom :
'#html'
,
// 向哪个DOM节点中插入数据 ID请填写# class填写. 例如<div id="html"> 填写 #html
click_dom :
'#click'
// 触发事件的DOM
},window.ajax_offset);
})
})
php代码<?php
include
'../e/class/connect.php'
;
// 数据库配置文件与公共函数文件
include
'../e/class/db_sql.php'
;
// 数据库操作文件
include
'../e/data/dbcache/class1.php'
;
// 栏目缓存文件
$link
= db_connect();
// 链接数据库
$empire
=
new
mysqlquery();
// 实例化数据库操作类
$p
=
$_POST
;
// 简写post
$_POST
= null;
// 释放post
$filter
=
'RepPostVar'
;
// 过滤非法数据
$tbname
=
$filter
(
$p
[
'tbname'
]);
// 数据表名
// 判断表是否存在
if
( !
$tbname
|| in_array(
$tbname
,
$etable_r
) )
{
die
( json_encode(
array
(
'status'
=>
'tbname_not'
) ) );
}
// 栏目ID
$classid
= (int)
$p
[
'classid'
];
// order
$order
=
$filter
(
$p
[
'order'
]);
// 查询偏移量
$offset
= (int)
$p
[
'offset'
];
if
(
$order
==
'desc'
&&
$offset
!= 0 )
{
$where_offset
=
' and id < '
.
$offset
;
}
else
{
$where_offset
=
''
;
}
if
(
$order
==
'asc'
)
{
$where_offset
=
' and id > '
.
$offset
;
}
$where
=
' WHERE 1'
;
$where
.=
$classid
?
' AND `classid` = '
.
$classid
:
''
;
$where
.=
$where_offset
;
$order
=
'ORDER BY id '
.
$order
;
$limit
= (int)
$p
[
'limit'
];
$limit
=
'LIMIT '
.
$limit
;
$sql
=
"SELECT {$maxid}id,classid,newspath,filename,groupid,titleurl,title FROM `{$dbtbpre}ecms_{$tbname}` {$where} {$order} {$limit}"
;
$num
=
$empire
->num(
$sql
);
if
(
$num
<1){
die
( json_encode(
array
(
'status'
=>
'data_0'
,
'sql'
=>
$sql
) ) );
}
$query
=
$empire
->query(
$sql
);
$last
= 0;
$html
=
''
;
while
(
$r
=
$empire
->fetch(
$query
)){
$last
=
$r
[
'id'
];
$url
= sys_ReturnBqTitleLink(
$r
);
$html
.= <<<HTML_LIST
<li>id ---
$r
[id]<a href=
"{$url}"
>
$r
[title]</a></li>
HTML_LIST;
}
die
( json_encode(
array
(
'status'
=>
'ok'
,
'html'
=>
$html
,
'offset'
=>
$last
,
'sql'
=>
$sql
) ) );
?>
下一篇:帝国cms使用qq邮箱发通知邮件