首页 > 建站百科 > 网站建设 > dedecms ajax 读取数据库

dedecms ajax 读取数据库

时间:2015-11-03 11:10:25 来源:西安网站建设
最近给客户制作一个网站,客户用的是dedecms开源程序,其中需要使用到ajax点击加载案例,在网上查看了资料,简化了一下代码,下面展示一下,给需要的同学们。
最终形成的效果是下面的这种情况, 点击加载更多,加载下面的内容



首先在/plus/文件加下面新建一个list_case.php文件,代码如下:

  1. <?php
  2. /**
  3. *
  4. * 栏目列表/频道动态页
  5. *
  6. * @version        $Id: list.php 1 15:38 2010年7月8日Z tianya $
  7. * @package        DedeCMS.Site
  8. * @copyright      Copyright (c) 2007 - 2010, DesDev, Inc.
  9. * @license        http://help.dedecms.com/usersguide/license.html
  10. * @link           http://www.dedecms.com
  11. */
  12. require_once(dirname(__FILE__)."/../include/common.inc.php");
  13.  
  14. if(isset($_GET['ajax'])){
  15.   $typeid = isset($_GET['typeid']) ? intval($_GET['typeid']): 0;//传递过来的分类ID
  16.   $page = isset($_GET['page']) ? intval($_GET['page']): 0;//页码
  17.   $pagesize = isset($_GET['pagesize']) ? intval($_GET['pagesize']): 15;//每页多少条,也就是一次加载多少条数据
  18.   $start = $page>0 ? ($page-1)*$pagesize : 0;//数据获取的起始位置。即limit条件的第一个参数。
  19.   $typesql = $typeid ? " WHERE typeid=$typeid" : '';//这个是用于首页实现瀑布流加载,因为首页加载数据是无需分类的,所以要加以判断,如果无需
  20.    $total_sql = "SELECT COUNT(id) as num FROM `#@__archives`  $typesql ";
  21.   $temp = $dsql->GetOne($total_sql);
  22.   $total = 0;//数据总数
  23.   $load_num =0;
  24.   if(is_array($temp)){
  25.     $load_num= round(($temp['num']-15)/$pagesize);//要加载的次数,因为默认已经加载了
  26.     $total = $temp['num'];
  27.   }
  28.   $sql = "SELECT a.*,t.typedir,t.typename,t.isdefault,t.defaultname,t.namerule,
  29.         t.namerule2,t.ispart, t.moresite,t.siteurl,t.sitepath
  30. FROM `#@__archives` as a JOIN `#@__arctype` AS t ON a.typeid=t.id    $typesql ORDER BY id DESC LIMIT $start,$pagesize";
  31. //echo "$sql";
  32.    $dsql->SetQuery($sql);
  33.     $dsql->Execute('list');
  34.    $statu = 0;//是否有数据,默认没有数据
  35.    $data = array();
  36.      $index = 0;
  37. while($row = $dsql->GetArray("list")){
  38.     $row['info'] = $row['info'] = $row['infos'] = cn_substr($row['description'],160);
  39.      $row['id'] =  $row['id'];
  40.      $row['filename'] = $row['arcurl'] = GetFileUrl($row['id'],
  41. $row['typeid'],$row['senddate'],$row['title'],$row['ismake'],
  42. $row['arcrank'],$row['namerule'],$row['typedir'],$row['money'],
  43. $row['filename'],$row['moresite'],$row['siteurl'],$row['sitepath']);
  44. $row['typeurl'] = GetTypeUrl($row['typeid'],$row['typedir'],
  45. $row['isdefault'],$row['defaultname'],$row['ispart'],
  46.    $row['namerule2'],$row['moresite'],$row['siteurl'],$row['sitepath']);
  47.   if($row['litpic'] == '-' || $row['litpic'] == ''){
  48.       $row['litpic'] = $GLOBALS['cfg_cmspath'].'/images/defaultpic.gif';
  49.    }
  50.     if(!preg_match("#^http:\/\/#i", $row['litpic']) &&$GLOBALS['cfg_multi_site'] == 'Y'){
  51.     $row['litpic'] = $GLOBALS['cfg_mainsite'].$row['litpic'];
  52.    }
  53.   $row['picname'] = $row['litpic'];//缩略图
  54.    $row['stime'] = GetDateMK($row['pubdate']);
  55.   $row['typelink'] = "<a href='".$row['typeurl']."'>".$row['typename']."</a>";//分类链
  56.   $row['fulltitle'] = $row['title'];//完整的标题
  57.   $row['shorttitle'] = $row['shorttitle'];//副标题
  58.   $row['title'] = cn_substr($row['title'], 60);//截取后的标题
  59.    $data[$index] = $row;
  60.    $index++;
  61. }
  62. if(!empty($data)){
  63. $statu = 1;//有数据
  64. }
  65. $result =array($data);
  66. echo json_encode($result);//返回数据
  67. exit();
  68. }
复制代码
其次在 模板中使用ajax调用:


  1. <div class="remodal" data-remodal-id="modal">
  2.            <ul id="caseLi">
  3.                   {dede:arclist typeid='5' pagesize='10'}
  4.                         <li><a href="[field:arcurl/]"><img src="[field:litpic/]" alt="[field:title/]" height="500" /></a></li>
  5.                         {/dede:arclist}
  6.                         
  7.        </ul>
  8.            <button id="loadMore" style="clear:both;width:80px; height:30px; border:none; background:#c2272b;line-height:30px; color:#fff; margin-top:20px;">加载更多</button>
  9.    </div>
  10.    <script type="text/javascript">
  11.                 var clickNum = 1;
  12.                 $("#loadMore").click(function(){
  13.                         clickNum +=1;
  14.                         $.ajax({
  15.                                 url:'/plus/list_case.php',
  16.                                 data:{typeid:5,page:clickNum,pagesize:10,ajax:'pullcase'},
  17.                                 dataType:'json',
  18.                                 success:function(data){
  19.                                         $.each(data[0],function(idx,item){
  20.                                                 $("#caseLi").append('<li><a href="'+item.arcurl+'"><img src="'+item.picname+'" alt="'+item.title+'" height="500" /></a></li>');
  21.                                         });
  22.                                 }
  23.                         });
  24.                 });
  25.         
  26.    </script>
复制代码
以上的代码希望对大家有所帮助。

本文出自企尚网络论坛:http://www.sxqswl.net/bbs/forum.php?mod=viewthread&tid=138&fromuid=1

阅读过此文章的读者,还阅读过下面的文章

2015-11-03 11:10:25      关于网站建设的内容你知道多少?
2015-11-03 11:10:25      网站建设在网站定位时需要注意一些什么?
2015-11-03 11:10:25      企业建站:低价背后的真相
2015-11-03 11:10:25      西安网站建设中网站的分类怎么分?
2015-11-03 11:10:25      网站建设前期如何做好网站市场的分析定位
2015-11-03 11:10:25      西安网站建设前的需求分析
2015-11-03 11:10:25      英文网站跟中文网站的建设区别
2015-11-03 11:10:25      什么才是好的网站建设公司?
2015-11-03 11:10:25      西安网站建设眼中合格的互联网+网站
2015-11-03 11:10:25      建设英文网站需要注意哪些原则?
2015-11-03 11:10:25      拒绝忽悠,企尚网络告诉你西安网站建设流程都有哪些?
2015-11-03 11:10:25      网站建设公司如何有效沟通客户需求