SmartTemplate 執行個體分析——基本文法[basic]之DropDown_Boxes

來源:互聯網
上載者:User

SmartTemplate 1.2.1 官方源檔案 可以從http://download.csdn.net/source/670995下載

本系列文章中的執行個體代碼可以到我的資源http://download.csdn.net/source/670977下載
以前學東西都是東一塊西一塊的,現在正好有時間,學點東西,同時也做一下記錄,以便備忘,也希望可以幫到學習SmartTemplate 的同學,初學,文中難免有紕漏,如有錯誤或不同意見,希望可以跟我聯絡
lxbin544930@163.com,我會及時更正,共勉。

5. DropDown_Boxes

【Content】basic/DropDown_Boxes.php:

<?php</p><p> require_once "../config/smarttemplate_basic.cfg.php";</p><p> $page = new SmartTemplate('DropDown_Boxes.html');</p><p> $cols = array( 'Red', 'Green', 'Blue' );<br /> $page->assign( 'COLORS', $cols );<br /> $page->assign('default', "Blue" );<br /> $page->output();</p><p>?>

【Template】templates/basic/DropDown_Boxes.html:

<form><br /><select name="color"><br />{options:COLORS,default}<br /></select><br /></form>

【Return】

<form><br /><select name="color"><br /><option>Red</option><br /><option>Green</option><br /><option selected="selected">Blue</option></p><p></select><br /></form>

【】

【瑣記】

這是一個在模板中使用option標籤的例子,只是類似<option>選項1</option><option>選項2</option>這樣的不帶value值的選擇項,帶value屬性的例子在擴充功能檔案夾裡[extensions/options.php]。

SmartTemplate模板中使用{options:COLORS,default}來表示select的選項集合<option>,對應的php處理檔案中要把相應的array變數$cols通過$page->assign( 'COLORS', $cols );賦值給COLORS,實際上模板類是將{options:COLORS,default}解析為smarttemplate_extension_options ( $param,  $default = 'Blue' ),簡單的說是把 '{擴充功能項:' 解析成了 'function smarttemplate_extension_擴充功能項(' 而冒號後面的作為對應函數的參數項的值。我每次都把相關功能的代碼貼在附錄裡,這樣既可以方便我們更快更準確的理解模板相關功能的使用,同時也省去了囉嗦晦澀的解釋。

 

【附錄】

include/smarttemplate_extensions/smarttemplate_extension_options.php的PHP代碼,我對以下代碼做了一些修改,注釋部分為原來的代碼(不做解釋,僅供參考,方便理解和查閱)

<?php</p><p>/**<br />* SmartTemplate Extension options<br />* Creates HTML DropDown Option list from an array<br />*<br />* Usage Example I:<br />* Content: $template->assign('pick', array( "on", "off" ) );<br />* Template: Choose: <select name="onoff"> {options:pick} </select><br />* Result: Choose: <select name="onoff"> <option>on</option><option>off</option> </select><br />*<br />* Usage Example II:<br />* Content: $template->assign('color', array( "FF0000" => "Red", "00FF00" => "Green", "0000FF" => "Blue" ) );<br />* $template->assign('default', "00FF00" );<br />* Template: Color: <select name="col"> {options:color,default} </select><br />* Result: Color: <select name="col"> <option value="FF0000">Red</option><option value="00FF00" selected>Green</option><option value="0000FF">Blue</option> </select><br />*<br />* @author Philipp v. Criegern philipp@criegern.com<br />*/<br />function smarttemplate_extension_options ( $param, $default = '_DEFAULT_' )<br />{<br />$output = "";<br />if (is_array($param))<br />{<br />$keyindex = 0;<br />foreach ($param as $key => $value)<br />{<br />if ($key==$keyindex++ && is_numeric($key))<br />{<br />//$output .= '<option' . (($value == $default) ? ' selected' : '') . '>' . $value . '</option>';<br />$output .= '<option' . (($value == $default) ? ' selected="selected"' : '') . '>' . $value . '</option>' . "/n";<br />}<br />else<br />{<br />//$output .= '<option value="' . $key . '"' . (($key == $default) ? ' selected' : '') . '>' . $value . '</option>';<br />$output .= '<option value="' . $key . '"' . (($key == $default) ? ' selected="selected"' : '') . '>' . $value . '</option>' . "/n";<br />}<br />}<br />}<br />return $output;<br />}</p><p>?>

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.