我們將 encryptor01.php 稍作簡單的修改,藉以說明整個概念
<html> <head> <title>Encode Software</title> <link rel="stylesheet" href="encryptor.css"> </head> <body> <div class="menu"> <a href="<?PHP echo $_SERVER['PHP_SELF']; ?>">Home</a> - <a href="<?PHP echo $_SERVER['PHP_SELF'].'?op=record'; ?>">Record</a> - <a href="<?PHP echo $_SERVER['PHP_SELF'].'?op=about'; ?>">About</a> </div> <div class="main"> <form action="<?PHP echo $_SERVER['PHP_SELF']; ?>" method="post"> <input type="text" name="input" size="67"><br / > <input type="submit" value="New" name="op"> <input type="submit" value="Load" name="op"> <input type="submit" value="Encode" name="op"> <input type="submit" value="Decode" name="op"> <input type="submit" value="Clean" name="op"> </form> </div> <div class="display"> <?php switch ($_REQUEST["op"]) { case "New": echo "There is <b>New</b> button."; break; case "Load": echo "There is <b>Load</b> button."; break; case "Encode": echo "There is <b>Encode</b> button. Your input is '{$_POST['input']}'."; break; case "Decode": echo "There is <b>Decode</b> button. Your input is '{$_POST['input']}'."; break; case "Clean": echo "There is <b>Clean</b> button."; break; case "record": echo "There is <b><i>Record</i></b> page."; break; case "about": echo "There is <b><i>About</i></b> page."; break; default: echo "something happened"; } ?> </div> </body> </html> <!-- 《程式語言教學誌》的範例程式 http://pydoing.blogspot.com/ 檔名:encryptor02.php 功能:示範 PHP 程式 作者:張凱慶 時間:西元 2012 年 11 月 -->
這裡是將第三個區塊改成 PHP 程式,也就是加入 switch 陳述。由於選單中 Record 的 op 值為 "record" , About 為 "about" ,雖然傳回是 $_GET 變數,但都可以由 $_REQUEST 來取得。同樣的,表單中有五個 op ,其值分別為 "New" 、 "Load" 、 "Encode" 、 "Decode" 與 "Clean" ,由 $_POST 傳回也可由 $_REQUEST 取得
switch ($_REQUEST["op"]) { case "New": echo "There is <b>New</b> button."; break; case "Load": echo "There is <b>Load</b> button."; break; case "Encode": echo "There is <b>Encode</b> button. Your input is '{$_POST['input']}'."; break; case "Decode": echo "There is <b>Decode</b> button. Your input is '{$_POST['input']}'."; break; case "Clean": echo "There is <b>Clean</b> button."; break; case "record": echo "There is <b><i>Record</i></b> page."; break; case "about": echo "There is <b><i>About</i></b> page."; break; default: echo "something happened"; }
程式很簡單,就在第三個區塊顯示傳回哪個 op 變數。 "Encode" 與 "Decode" 的地方要注意一下,這裡額外用 $_POST['input'] 取得文字輸入欄位的輸入值,並且將使用者輸入的文字印出來
case "Encode": echo "There is <b>Encode</b> button. Your input is '{$_POST['input']}'."; break; case "Decode": echo "There is <b>Decode</b> button. Your input is '{$_POST['input']}'."; break;
PHP 的字串 (string) 裡也可用大括弧放變數,不然就要用字串連接運算子 . 。
至於選單 Home 或是第一次連結到 encryptor02.php 都會執行 default
default: echo "something happened";
來看看網頁結果吧!先看到 Record 頁
New 按鈕
Encode 按鈕並輸入 "There is no spoon"
好了,網站流程控制的概念很簡單唄!接下來我們要將功能模組化,將 HTML 語法交給 PHP 函數 (function) ,來看看 make_page() 與 input_form() 吧!
中英文術語對照 | |
---|---|
陳述 | statement |
變數 | variable |
字串 | string |
函數 | function |
您可以繼續參考
網站篇
相關目錄
回 PHP 入門指南
回 PHP 教材
回首頁
參考資料
http://www.php.net/manual/en/tutorial.firstpage.php
http://www.php.net/manual/en/tutorial.useful.php
http://www.php.net/manual/en/tutorial.forms.php
http://php.net/manual/en/control-structures.switch.php
沒有留言:
張貼留言