Jill 筆記
:::
:::
所有書籍
「PHP從入門到放棄實戰班」目錄
MarkDown
5. 套用Smarty樣板
1. 實戰之前
1-1 安裝開發環境
1-2 上課範例
2. HTML基礎
2-1 index.html
3. BootStrap響應式框架
3-1 格線系統
3-2 表格
3-3 導覽列
3-4 表單
4. PHP基本語法
4-1 註解
4-2 PHP資訊頁
4-3 PHP變數與陣列
4-4 各種訊息整理
5. 套用Smarty樣板
5-1 使用 Smarty
5-2 index.php
5-3 templates/index.tpl
5-4 php二維陣列
6. 資料庫規劃
6-1 MySQL常用資料類型一覽
6-2 讓PHP7連線到MySQL資料庫
7. PHP程式整併與樣板流程判斷
7-1 PHP條件判斷
7-2 PHP的變數過濾
7-3 練習自訂函數
7-4 templates/index.tpl
7-5 index.php
8. 製作表單並寫入資料到資料庫
8-1 index.php
8-2 post_form.tpl
8-2-1 post_form.tpl
8-3 templates/index.tpl
8-4 footer.php
9. 資料庫讀取
9-1 幾個常用的迴圈用法
9-2 讀出資料的安全性過濾並顯示
9-3 想想寫入還有什麼問題?
9-4 templates/post_form.tpl
9-5 index.php
9-6 templates/index.tpl
10. 編輯表單、刪除資料
10-1 顯示單筆資料
10-2 刪除事項
10-3 index.php
10-4 templates/post_form.tpl
10-5 templates/index.tpl
10-6 templates/show_one.tpl
11. 其他細節處理(補充)
11-1 小月曆
11-2 加入所見即所得編輯器
11-3 表單驗證
11-4 分頁功能
12. 練習
5-2 index.php
PHP從入門到放棄實戰班 ============ ### 一、Smarty基本操作 1. 大原則:和外觀有關的東西都放到.html或.tpl中,所需要的資料全由.php提供,簡單範例,index.php內容: ```markup assign('title', $title); $smarty->assign('header', $header); $smarty->display('index.html'); ``` 2. 樣板檔一律放至 templates 目錄中:請將index.html移到templates 目錄中 3. PHP檔中最常用的就是利用 $smarty->assign('樣板標籤名稱', $變數值); 將變數送至樣板檔。 4. templates/index.tpl 內容: ```markup
{$title}
~~~~~~~~~~~~~~~~~~~~~~~~~~以下省略~~~~~~~~~~~~~~~~~~~~
{$header}
``` 5. index.php ```php assign('page_title', $page_title); $smarty->assign('header', $header); // 呈現在哪個檔案 templates/xxx.tpl $smarty->display('index.tpl'); ``` 6. templates/index.tpl ```markup
{$page_title}
{$header}
回首頁
(current)
發布待辦事項
日期:2020-07-20
今天到期:1
逾期:2
是否完成
標題
到期日
優先順序
指派對象
完成
撰寫程式
2020/06/08
低
李大頭
未完成
開會
2020/06/08
高
李大頭、主任、XX科
完成
撰寫程式
2020/06/08
低
李大頭
``` ### 二、Smarty變數及陣列
傳送內容
PHP檔(\*.php)
Smarty樣板檔(\*.tpl)
一般變數
```php $header = '我的待辦清單'; $smarty->assign('header', $header); ```
```markup {$header} ```
一維陣列
```php $navbar['home'] = "回首頁"; $navbar['post'] = "發布待辦事項"; $smarty->assign('navbar', $navbar); ```
```markup
{$navbar.home}
(current)
{$navbar.post}
```
二維陣列
```php $content[1]['directions'] = "撰寫程式"; $content[1]['end'] = "2020/06/08"; $content[2]['directions'] = "開會"; $content[2]['end'] = "2020/06/10"; $smarty->assign('content', $content); ```
```markup {foreach $content as $c}
{$c.directions}
{$c.end}
{/foreach} ``` 或 ```markup
{$content.1.directions}
{$content.1.end}
{$content.2.directions}
{$content.2.end}
```
三、程式碼 1. index.php ```php assign('title', $title); $smarty->assign('header', $header); // 一維陣列 $navbar = ['home' => "回首頁", 'post' => "發布待辦事項"]; // $navbar['home'] = "回首頁"; // $navbar['post'] = "發布待辦事項"; $smarty->assign('navbar', $navbar); // 二維陣列 $content = array( "1" => array('directions' => "撰寫程式", 'end' => "2020/06/08"), //用逗號結尾 "2" => array('directions' => "開會", 'end' => "2020/06/10"), ); // $content[1]['directions'] = "撰寫程式"; // $content[1]['end'] = "2020/06/08"; // $content[2]['directions'] = "開會"; // $content[2]['end'] = "2020/06/10"; $smarty->assign('content', $content); // 輸出到樣板檔 $smarty->display('index.tpl'); ``` 2. template/index.tpl ```markup
{$title}
{$header}
{$navbar.home}
(current)
{$navbar.post}
日期:2020/06/08
今天到期:1
逾期:2
描述
到期日
{foreach $content as $c}
{$c.directions}
{$c.end}
{/foreach}
{$content.1.directions}
{$content.1.end}
{$content.2.directions}
{$content.2.end}
```