帝國CMS通用封裝的ajax加載信息框架代碼,改改可以應用到任何地方。
HTML代碼
<!DOCTYPE html>
<html>
<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.zztuku.com/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.zztuku.com/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)));
?>





