帝国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 :
‘没有此数据表’

}

$.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’,
// 数据表名称

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) ) );

?>