前端动态调用模板

2024-01-25 17:09 小编

用法一、静态页面下调用动态页面内容

例如在某个静态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


----传递参数的写法---

方法1:将固定参数传入到动态模板

{dr_ajax_template('dr_member_info', 'member.html', 'cc=123&bb=321')}

api/member.html模板接收参数写法是:

{$cc}

{$bb}



方法2:将变量参数传入到动态模板,例如show.html内容页将内容id传入进去

{dr_ajax_template('dr_member_info', 'member.html', 'id='.$id)}

{dr_ajax_template('dr_member_info', 'member.html', 'title='.$title.'&id='.$id)} 将内容标题和id一起传入

api/member.html模板接收参数写法是:

{$id}

{$title} 接收第二个参数




用法二、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的值"  }   }

}



Tag: 模板
在线咨询 拨打电话

电话

13363039260

微信二维码

微信二维码