帝国CMS封装的ajax加载信息框架代码
帝国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) ) );
?>