亚洲免费乱码视频,日韩 欧美 国产 动漫 一区,97在线观看免费视频播国产,中文字幕亚洲图片

      1. <legend id="ppnor"></legend>

      2. 
        
        <sup id="ppnor"><input id="ppnor"></input></sup>
        <s id="ppnor"></s>

        smarty循環(huán)嵌套用法示例分析

        字號:


            這篇文章主要介紹了smarty循環(huán)嵌套用法,結(jié)合實(shí)例形式分析了Smarty模板嵌套循環(huán)的實(shí)現(xiàn)技巧與相關(guān)注意事項(xiàng),需要的朋友可以參考下
            test3.php:
            <?php
            require "main.php";
            $forum = array(
                array("category_id" => 1, "category_name" => "公告區(qū)",
                  "topic" => array(
                    array("topic_id" => 1, "topic_name" => "站務(wù)公告")
                  )
                ),
                array("category_id" => 2, "category_name" => "文學(xué)專區(qū)",
                  "topic" => array(
                    array("topic_id" => 2, "topic_name" => "好書介紹"),
                    array("topic_id" => 3, "topic_name" => "奇文共賞")
                  )
                ),
                array("category_id" => 3, "category_name" => "電腦專區(qū)",
                  "topic" => array(
                    array("topic_id" => 4, "topic_name" => "硬件周邊"),
                    array("topic_id" => 5, "topic_name" => "軟件討論")
                  )
                )
            );
            $tpl->assign("forum", $forum);
            $tpl->display("test3.htm");
            ?>
            樣版的寫法如下:
            templates/test3.htm:
            <html>
            <head>
            <title>循環(huán)嵌套測試</title>
            </head>
            <body>
            <table width="200" cellpadding="3" cellspacing="0">
              <{section name=sec1 loop=$forum}>
              <tr>
                <td colspan="2"><{$forum[sec1].category_name}></td>
              </tr>
              <{section name=sec2 loop=$forum[sec1].topic}>
              <tr>
                <td width="25"> </td>
                <td width="164"><{$forum[sec1].topic[sec2].topic_name}></td>
              </tr>
              <{/section}>
              <{/section}>
            </table>
            </body>
            </html>
            test2.php:
            <?php
            require_once('./include/db_fns.php');
            include_once("./Smarty/libs/Smarty.class.php"); //包含Smarty類文件
            $smarty = new Smarty(); //建立Smarty實(shí)例對象$Smarty
            $smarty->template_dir = "./templates/dedecms";//設(shè)置模板目錄
            $smarty->compile_dir = "templates/templates_c"; //設(shè)置編譯目錄
            $smarty->assign("template_url", "./");
            $smarty->assign("$site_url", "http://www.jb51.net/");
            $smarty->assign("$site_name", "文章管理系統(tǒng)");
            $smarty->left_delimiter = "<{"; //設(shè)置左邊界符
            $smarty->right_delimiter = "}>"; //設(shè)置右邊界符
            $db_conn = db_connect();
            $query = "SELECT cat_ID,cat_name FROM categories ORDER BY cat_ID DESC";
            $result = mysql_query($query);
            $i = 5;
            while(($row = mysql_fetch_array($result)) && $i > 0)
            {
                    $query2="SELECT ID, post_title, post_date
                            FROM post
                            WHERE post.post_category =$row[cat_ID]
                            AND post_status <> 'unpbulish'
                            ORDER BY post_date DESC";
                    $result2=mysql_query($query2);
                    $i = 5; 
                    while(($row2 = mysql_fetch_array($result2)) && $i > 0)
                    {
                        $row2[post_date]=date('m-d',strtotime($row2[post_date]));
                        $category = array("cat_ID"=>"$row[cat_ID]","cat_name"=>"$row[cat_name]",
                        "post"=>array("ID"=>"$row2[ID]",
                        "post_title"=>"$row2[post_title]" ,
                        "post_category"=>"$row2[post_category]" ,
                        "post_date"=>"$row2[post_date]"));
                        $i--;
                    }
            }
            $smarty->assign("forum", $category);
            $smarty->display("test2.htm");
            ?>
            test2.htm:
            <html>
            <head>
            <title>嵌套循環(huán)測試</title>
            </head>
            <body>
            <table width="200" cellpadding="3" cellspacing="0">
            <{section name=sec1 loop=$forum}>
                  <tr>
                  <td colspan="2"><{$forum[sec1].cat_id}></td>
                  </tr>
                    <{section name=sec2 loop=$forum[sec1].post}>
                      <tr>
                      <td width="25"> </td>
                      <td width="164"><{$forum[sec1].post[sec2].post_title}></td>
                      </tr>
                    <{/section}>
            <{/section}>
            </table>
            </body>
            </html>
            test4.php:
            <?php
            require "main.php";
            $my_array = array(
            array("value" => "0"),
            array("value" => "1"),
            array("value" => "2"),
            array("value" => "3"),
            array("value" => "4"),
            array("value" => "5"),
            array("value" => "6"),
            array("value" => "7"),
            array("value" => "8"),
            array("value" => "9"));
            $tpl->assign("my_array", $my_array);
            $tpl->display('test4.htm');
            ?>
            模版的寫法如下:
            templates/test4.htm:
            <html>
            <head>
            <title>橫向重復(fù)表格測試</title>
            </head>
            <body>
            <table width="500" cellspacing="0" cellpadding="3">
            <tr>
            <{section name=sec1 loop=$my_array}>
            <td><{$my_array[sec1].value}></td>
            <{if $smarty.section.sec1.rownum is div by 2}>
            </tr>
            <tr>
            <{/if}>
            <{/section}>
            </tr>
            </table>
            </body>
            </html>
            重點(diǎn)在于 $smarty.section.sec1.rownum 這個(gè) Smarty 變量,在 section 循環(huán)中這個(gè)變量會(huì)取得從 1 開始的索引值,所以當(dāng) rownum 能被 2 除盡時(shí),就輸出 </tr><tr> 使表格換列 (注意!是 </tr> 在前面<tr> 在后面) 。因此數(shù)字 2 就是我們在一列中想要呈現(xiàn)的資料筆數(shù)。各位可以由此去變化其它不同的呈現(xiàn)方式。
            運(yùn)算符有以下這些:
            eq、ne、neq、gt、lt、lte、le、gte、ge、is even、is odd、is not even、is not odd、not、mod、div by、even by、odd by
            示例:
            <!--{if $bigsize ge '650'}-->
               <img src="photo/<!--{$photo}-->" width="650" />
            <!--{else}-->
                <img src="photo/<!--{$photo}-->" />
            <!--{/if}-->
            以前不常用smarty,這兩天有個(gè)朋友的網(wǎng)站要改;順手用了一下,還是挺有意思的。
            關(guān)于capture 的說明:
            capture函數(shù)的作用是收集模板輸出的數(shù)據(jù)到一個(gè)變量里,而不是把它們輸出到頁面. 
            任何在   {capture   name="foo"}和{/capture}之間的數(shù)據(jù)都被收到了由函數(shù)的名稱屬性指定的變量里($foo). 
            收集的信息可以用在特殊變量$smarty里. 
            例如capture.foo就收集了以上數(shù)據(jù).如果函數(shù)沒有名字屬性,將使用"default". 
            每個(gè){capture}都必須對應(yīng){/capture},也不能嵌套使用capture函數(shù).
            希望本文所述對大家基于smarty模板的PHP程序設(shè)計(jì)有所幫助。