php中这种写法到底是怎么回事

ziluopao 发布于 2016/06/07 12:12
阅读 400
收藏 0
PHP

说来确实挺让人疑惑的,一个商城的手机端,其中每个页面是一个静态页html,其中包含着<%%>标签

比如

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

<script type="text/html" id="category-one">
    
<% print_r(store_list);%>
<%if(store_list.length>0){%>

        <% for (var k in store_list) { var v = store_list[k]; %>
        <li id="favitem_<%=v.store_id %>">
            <a href="tmpl/store.html?store_id=<%=v.store_id %>">
                <div class="store-avatar"><img src="<%=v.store_avatar_url %>"/></div>
                <dl class="store-info">
                    <dt class="store-name"><%=v.store_name %></dt>
                    <dd><span>粉丝:<em><%=v.store_collect %></em>人</span></dd>
                </dl>
            </a>
        </li>
        <%}%>
    <%}else{%>
<style type="text/css">.pagination{ display: none;}</style>
    <div class="nctouch-norecord favorite-store">
        <div class="norecord-ico"><i></i></div>
        <dl>
            <dt>没有店铺</dt>
            <dd>可以去看看其它的吧</dd>
        </dl>
        <a href="<%=WapSiteUrl%>" class="btn">随便逛逛</a>
    </div>
    <%}%>
</script>

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


上面代码中的store_list一看就是一个sql出来的数组,此sql肯定是php文件传来的,但上面说了,接收的页面是html静态页,这怎么能 收到呢?

还有一个疑点是 for (var k in store_list) 这种写法一看就是javascript代码,这怎么可能呢,因为store_list是php逻辑业务文件传来的sql值,怎么会跑到js中混合双打呢,越想越晕,这到 底是咋回事?

但静态页怎么获取逻辑业务文件传来的值呢?

加载中
0
Bin_Shi
Bin_Shi
这个文件的扩展名虽然是html,但是这个并不能算是一个常规意义上的html文件,因为这个html并不是服务器直接加载,而是一个模板一样的东西,由php进行处理后转换成html代码输出到网页上。
0
ziluopao
ziluopao
有道理,我再看下
0
ZongLiang
ZongLiang
看起来比较像是js模板的写法
0
ziluopao
ziluopao

引用来自“Bin_Shi”的评论

这个文件的扩展名虽然是html,但是这个并不能算是一个常规意义上的html文件,因为这个html并不是服务器直接加载,而是一个模板一样的东西,由php进行处理后转换成html代码输出到网页上。

确实如你所言,我追了一下代码是下面这段

if(!empty($config['wap_site_url'])){
            $url = $config['wap_site_url'];
            switch ($_GET['act']){
			case 'goods':
			  $url .= '/tmpl/product_detail.html?goods_id=' . $_GET['goods_id'];
			  break;
			case 'store_list':
			  $url .= '/shop.html';
			  break;
			case 'show_store':
			  $url .= '/tmpl/product_store.html?store_id=' . $_GET['store_id'];
			  break;
			}
        } else {



但,加载模板的逻辑业务还没有找到

ziluopao
ziluopao
我又查了一下,原来是从ajax来的,太阴险了!
0
ziluopao
ziluopao

引用来自“Bin_Shi”的评论

这个文件的扩展名虽然是html,但是这个并不能算是一个常规意义上的html文件,因为这个html并不是服务器直接加载,而是一个模板一样的东西,由php进行处理后转换成html代码输出到网页上。

引用来自“ziluopao”的评论

确实如你所言,我追了一下代码是下面这段

if(!empty($config['wap_site_url'])){
            $url = $config['wap_site_url'];
            switch ($_GET['act']){
			case 'goods':
			  $url .= '/tmpl/product_detail.html?goods_id=' . $_GET['goods_id'];
			  break;
			case 'store_list':
			  $url .= '/shop.html';
			  break;
			case 'show_store':
			  $url .= '/tmpl/product_store.html?store_id=' . $_GET['store_id'];
			  break;
			}
        } else {



但,加载模板的逻辑业务还没有找到

原来是这里加载的

public function indexOp(){


        $this->_get_Own_Store_List();

    }


    private  function  _get_Own_Store_List(){
		
		$model_store = Model('store');
        //查询条件
        $condition = array();
        if(!empty($_GET['sc_id']) && intval($_GET['sc_id']) > 0) {
            $condition['sc_id'] = $_GET['sc_id'];
        } elseif (!empty($_GET['keyword'])) {
            //$condition['store_name'] = array('like', '%' . $_GET['keyword'] . '%');
        }



返回顶部
顶部