2个回答
展开全部
使用方法:
1、加载是用AJAX,需要先引用jQuery
2、模板在arcajax.php第二十八行请自行按需修改
3、arcajax.php放到plus目录下
HTML和js代码:
<div id="loading27">加载中</div>
<a href="javascript:;" id="getMore" pnum="2" class="index-more bgw mt15">浏览更多案例......</a>
<script type="text/javascript">
$("#getMore").click(function(){
var _this = $(this),
pnum = _this.attr("pnum"),//分页码
typeid = 1;// 栏目ID
if(pnum == 0){
return false;
}
$("#loading27").show();
$.ajax({
url: '/plus/arcajax.php',
data: {typeid:typeid,pnum:pnum},
success: function(data){
if(data != ''){
$(".index-list").append(data);//数据显示到页面
_this.attr("pnum", Number(pnum)+1);//分页+1
}else{
_this.text("没有更多的数据");
_this.attr("pnum", 0)
}
$("#loading27").hide();
}
})
return false;
})
</script>
PHP代码(arcajax.php):
<?php
require_once(dirname(__FILE__)."/../include/common.inc.php");
require_once(DEDEINC.'/channelunit.class.php');
require_once(DEDEINC.'/taglib/arcpagelist.lib.php');
$pnum = empty($pnum)? 0 : intval(preg_replace("/[^\d]/",'', $pnum));
$typeid = empty($typeid)? 0 : intval(preg_replace("/[^\d]/",'', $typeid));
if($typeid==0 || $pnum==0) die(" Request Error! ");
if($typeid > 0)
{
$titlelen = AttDef($titlelen,30);
$infolen = AttDef($infolen,160);
$imgwidth = AttDef($imgwidth,120);
$imgheight = AttDef($imgheight,120);
$listtype = AttDef($listtype,'all');
$arcid = AttDef($arcid,0);
$channelid = AttDef($channelid,0);
$orderby = AttDef($orderby,'default');
$orderWay = AttDef($order,'desc');
$subday = AttDef($subday,0);
$line = $row;
$artlist = '';
//通过页面及总数解析当前页面数据范围
$strnum = ($pnum-1) * 12;
$limitsql = " LIMIT $strnum,12 ";
$innertext = '<li [field:global name="autoindex" runphp="yes"]if(@me%3==0)@me=\'class="mrnone"\'; else @me="";[/field:global]>
<div><a href="[field:arcurl/]" title="[field:title/]"><img src="[field:litpic/]" width="278" height="245"></a></div>
<h3><a href="[field:arcurl/]" title="[field:title/]">[field:title/]</a></h3>
<p>[field:description function="cn_substr(@me,150)"/]</p>
<span class="more"><a href="[field:arcurl/]">浏览案例</a></span>
</li>';//模板
//处理列表内容项
$query = "SELECT arc.*,tp.typedir,tp.typename,tp.corank,tp.isdefault,tp.defaultname,tp.namerule,tp.namerule2,tp.ispart,
tp.moresite,tp.siteurl,tp.sitepath FROM `#@__archives` arc LEFT JOIN `#@__arctype` tp ON arc.typeid=tp.id
WHERE arc.typeid IN (".GetSonIds($typeid).") ORDER BY arc.sortrank desc $limitsql";
$dsql->SetQuery($query);
$dsql->Execute('al');
$dtp2 = new DedeTagParse();
$dtp2->SetNameSpace('field', '[', ']');
$dtp2->LoadString($innertext);
$GLOBALS['autoindex'] = 0;
$ids = array();
for($i=0; $i<12; $i++)
{
for($j=0; $j<1; $j++)
{
if($row = $dsql->GetArray("al"))
{
$ids[] = $row['id'];
//处理一些特殊字段
$row['info'] = $row['infos'] = cn_substr($row['description'],$infolen);
$row['id'] = $row['id'];
if($row['corank'] > 0 && $row['arcrank']==0)
{
$row['arcrank'] = $row['corank'];
}
$row['filename'] = $row['arcurl'] = GetFileUrl($row['id'],$row['typeid'],$row['senddate'],$row['title'],$row['ismake'],
$row['arcrank'],$row['namerule'],$row['typedir'],$row['money'],$row['filename'],$row['moresite'],$row['siteurl'],$row['sitepath']);
$row['typeurl'] = GetTypeUrl($row['typeid'],$row['typedir'],$row['isdefault'],$row['defaultname'],$row['ispart'],
$row['namerule2'],$row['moresite'],$row['siteurl'],$row['sitepath']);
if($row['litpic'] == '-' || $row['litpic'] == '')
{
$row['litpic'] = $GLOBALS['cfg_cmspath'].'/images/defaultpic.gif';
}
if(!preg_match("#^http:\/\/#", $row['litpic']) && $GLOBALS['cfg_multi_site'] == 'Y')
{
$row['litpic'] = $GLOBALS['cfg_mainsite'].$row['litpic'];
}
$row['picname'] = $row['litpic'];
$row['stime'] = GetDateMK($row['pubdate']);
$row['typelink'] = "<a href='".$row['typeurl']."'>".$row['typename']."</a>";
$row['image'] = "<img src='".$row['picname']."' border='0' width='$imgwidth' height='$imgheight' alt='".preg_replace("#['><]#", "", $row['title'])."'>";
$row['imglink'] = "<a href='".$row['filename']."'>".$row['image']."</a>";
$row['fulltitle'] = $row['title'];
$row['title'] = cn_substr($row['title'],$titlelen);
if($row['color']!='') $row['title'] = "<font color='".$row['color']."'>".$row['title']."</font>";
if(preg_match('#b#', $row['flag'])) $row['title'] = "<strong>".$row['title']."</strong>";
//$row['title'] = "<b>".$row['title']."</b>";
$row['textlink'] = "<a href='".$row['filename']."'>".$row['title']."</a>";
$row['plusurl'] = $row['phpurl'] = $GLOBALS['cfg_phpurl'];
$row['memberurl'] = $GLOBALS['cfg_memberurl'];
$row['templeturl'] = $GLOBALS['cfg_templeturl'];
if(is_array($dtp2->CTags))
{
foreach($dtp2->CTags as $k=>$ctag)
{
if($ctag->GetName()=='array')
{
//传递整个数组,在runphp模式中有特殊作用
$dtp2->Assign($k,$row);
} else {
if(isset($row[$ctag->GetName()])) $dtp2->Assign($k,$row[$ctag->GetName()]);
else $dtp2->Assign($k,'');
}
}
$GLOBALS['autoindex']++;
}
$artlist .= $dtp2->GetResult()."\r\n";
}//if hasRow
else {
$artlist .= '';
}
}//Loop Col
}//loop line
$dsql->FreeResult("al");
} else
{
die(" Request Error! ");
}
AjaxHead();
echo $artlist;
exit();
展开全部
这个思路很简单做起来比较麻烦
在模板中做一个加载更多的按钮,点击后使用ajax去请求数据。
请求到数据后将数据添加到网页对应的容器中。
请求的路径你在plus目录下新建一个php文件,也就是dedecms的插件目录,
内容参开如下(我的瀑布流获取数据插件):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
require_once(dirname(__FILE__)."/../include/common.inc.php");
//$t1 = ExecTime();
$page = isset($_GET['page'])?$_GET['page']:1;
$per = isset($_GET['per'])?$_GET['per']:1;
$limit = (($page-1)*$per).",".$per;
$selquery = "SELECT * FROM `#@__archives` where channel=2 limit ".$limit;
$dsql->SetQuery($selquery);
$dsql->Execute();
while($row = $dsql->GetArray())
{
$arcurl = GetOneArchive($row['id']);
$arcurl = $arcurl['arcurl'];
$count = Getimgnum($row['id']);
$img = thumbImg($row['litpic'],235,0);
$title = $row['title'];
echo "<div class='pic_box'>
<a href='$arcurl' target='_blank' title='$title' class='img'>
<img rel='lazy' $img alt='$title' src='http://www.meinvmj.com/pic/none.gif' />
<div class='num'><i>$count</i><b>张</b></div>
</a>
<span>
<a href='$arcurl' target='_blank' title='$title'>$title</a>
</span>
</div>";
}
在模板中做一个加载更多的按钮,点击后使用ajax去请求数据。
请求到数据后将数据添加到网页对应的容器中。
请求的路径你在plus目录下新建一个php文件,也就是dedecms的插件目录,
内容参开如下(我的瀑布流获取数据插件):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
require_once(dirname(__FILE__)."/../include/common.inc.php");
//$t1 = ExecTime();
$page = isset($_GET['page'])?$_GET['page']:1;
$per = isset($_GET['per'])?$_GET['per']:1;
$limit = (($page-1)*$per).",".$per;
$selquery = "SELECT * FROM `#@__archives` where channel=2 limit ".$limit;
$dsql->SetQuery($selquery);
$dsql->Execute();
while($row = $dsql->GetArray())
{
$arcurl = GetOneArchive($row['id']);
$arcurl = $arcurl['arcurl'];
$count = Getimgnum($row['id']);
$img = thumbImg($row['litpic'],235,0);
$title = $row['title'];
echo "<div class='pic_box'>
<a href='$arcurl' target='_blank' title='$title' class='img'>
<img rel='lazy' $img alt='$title' src='http://www.meinvmj.com/pic/none.gif' />
<div class='num'><i>$count</i><b>张</b></div>
</a>
<span>
<a href='$arcurl' target='_blank' title='$title'>$title</a>
</span>
</div>";
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询