zdcms动态调用模板方法
用法一、静态页面下调用动态页面内容
例如在某个静态html页面中想调用动态内容时,可以将下面代码放到它页面里:
<div id="ajax_test_file"> {dr_ajax_template("ajax_test_file", "test.html")}
意思是调用test.html的内容,作为动态调用模式,那么你需要在test.html写你的代码。
例如:
Ajax动态调用模板通常用于调用会员登录信息,比如在静态页面或者首页中调用会员登录状态信息等。
第一步、在首页或静态页面加上下面代码:
<ul id="dr_member_info"> </ul> <!-- 动态调用member.html模板的会员登录信息 --> {dr_ajax_template('dr_member_info', 'member.html')}
id值一定要和后面的函数第一个参数保持一致,第二个参数表示调用哪个模板,例子是member.html
第二步、创建api/member.html模板
{if $member} <li><a href="{MEMBER_URL}">用户中心</a><i class="fa fa-angle-down"></i></li> <li><a href="javascript:dr_loginout('退出成功');">退出平台</a></li> {else} <li><a href="{dr_member_url('login/index')}">登录</a></li> <li><a href="{dr_member_url('register/index')}">注册</a></li> {/if}
特别说明:使用本函数时必须在它的前面加载jquery
用法二、ajax动态加载模式,例如搜索页面无刷新滚动加载下一页
<script src="需要百度搜索找到这个js库 dropload.min.js"></script> <input id="dr_page_id" type="hidden" value="2"> <script> $(function(){ // dropload var dropload = $('.content').dropload({ scrollArea : window, loadDownFn : function(me){ $.ajax({ type: 'GET', url: '/index.php?s=api&c=api&m=template&name=items.html&module={MOD_DIR}&catid={$catid}&sototal={$sototal}&searchid={$searchid}&order={$params.order}&page='+$('#dr_page_id').val(), dataType: 'jsonp', success: function(json){ $('.sd-item-list').append(json.msg); // 每次数据加载完,必须重置 me.resetload(); $('#dr_page_id').val(Number($('#dr_page_id').val())+1); }, error: function(xhr, type){ alert('Ajax error!'); // 即使加载出错,也得重置 me.resetload(); } }); } }); }); </script>
然后在api/items.html写上第二页的查询代码
<?php $get=$_GET;?> {search module=$get.module id=$get.searchid total=$get.sototal order=$get.order catid=$get.catid page=1 pagesize=20 urlrule=$urlrule} <li> <a href="{dr_mobile_url($t.url)}"> <div class="sd-item-img"><img src="{dr_thumb($t[thumb][0][file], 100, 100)}"></div> <div class="sd-item-body"> <div class="sd-item-body-name"> <span>{$t.title}</span> </div> <div class="product-price-m"> <em>¥ <span class="big-price">{number_format($t.price, 2)}</span> </em> <i class="plus-p"></i> </div> <div class="gray-pro-info"> <span>{$t.comments}条评价</span> <span>{$t.volume}销量</span> </div> </div> </a> </li> {/search}
用法二的扩展:通过API请求,可返回指定变量
需要在api/items.html模板中定义返回变量:
在api/items.html任意位置写上: {php $this->call_value['变量1'] = "变量11的值";}
那么通过api请求会返回:
{ "code":1, "msg":"xxx", "data": {"file":"xxx.html","module":"", "call_value":{"变量1":"变量11的值" } } }