帝国cms教程

帝国CMS封装的ajax加载信息框架代码

我的站长站 2019-12-21 人阅读

帝国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) ) );
?>
相关推荐
  • AJAX
  • 帝国CMS表单如何使用ajax提交?

    自己做了个表单提交,但是form的转跳页面提示,想做成ajax根据返回信息提示。ajax提交思路代码var data = $(&#39;#form&#39;).serialize(), url = $(&#39;#form&#39;).attr(&#39;action&#39;); $.ajax({ method:"POST...

    帝国cms教程 306 5年前
  • wordpress Ajax无限加载插件-Quick Ajax2.3.1[英文版]
    wordpress Ajax无限加载插件-Quick Ajax2.3.1[英文版]

    Quick Ajax插件说明使用此插件,你可以在你的主题里实现无限加载文章来代替传统的分页模式。提供多种列表模式:瀑布流、传统文章模式、时间轴等。wordpress加载主要功能外观设置选择布局:经典(列表)或...

    wordpress插件 520 5年前
  • wordpress实现文章的ajax无限加载

    刚学习wordpress 写一个网站的文章的无限加载,本来想的好难啊,但是真的自己写了之后感觉真的挺简单的,所以啊一定要做一下小小的总结:首先你要确定你的wordpress的jQuery功能能用你可以在header.php里wp_head();前面加上wp_enqueue_script(&#39;jquery&#...

    wordpress教程 237 5年前
最新更新