PHP4實際應用經驗篇(8)
來源:互聯網
上載者:User
關鍵字
PHP4實際應用經驗篇(8)
作者:孫運動
你可能已經注意到,到目前為止,在我們給你的所有例子中,我們都是給你兩個頁面-一個單純的具有表單的HTML頁面,和另一個用來處理表單輸入併產生相應輸出的php指令碼。然而,PHP提供了一種把那兩個頁面通過 $submit 變數結合在一起的文雅的方法
你已經知道,一旦一個表單提交給PHP指令碼,所有的表單變數就變成了的PHP變數。現在,除了使用者定義的變數外,在你每次點擊表單的“提交(SUBMIT )”按扭的同時,也就建立了一個名為 $submit的變數。因此,通過測試該變數是否存在,聰明的程式員可以只使用一個頁面來既初始化表單又產生提交後的輸出。
讓我們給你示範一下-我們用一個頁面來實現上面那個幸運甜餅例子,包括最初的選擇日期頁面和後面的幸運甜餅頁面。我們假設新的PHP檔案也叫"cookie.php"
--------------------------------------------------------------------------------
< ?
if (!$submit)
{
// 如果$submit不存在, 這暗示表單還沒有提交
// 所以顯示第一個頁面
?>
< html>
< head>
< style type="text/CSS">
td {font-family: Arial;}
< /style>
< /head>
< body>
< font face="Arial" size="+2">
The Amazing Fortune Cookie Generator
< /font>
< form method="GET" action="cookie.php">
< table cellspacing="5" cellpadding="5" border="0">
< tr>
< td align="center">
Pick a day
< /td>
< td align="right">
< select name="day">
< option value="Monday">Monday
< option value="Tuesday">Tuesday
< option value="Wednesday">Wednesday
< option value="Thursday">Thursday
< option value="Friday">Friday
< option value="Saturday">Saturday
< option value="Sunday">Sunday
< /select>
< /td>
< /tr>
< tr>
< tr>
< td colspan="2" align="center">
< input type="submit" name="submit" value="Hit me!">
< /td>
< /tr>
< /table>
< /form>
< /body>
< /html>
< ?
}
else
{
// 如果$submit 確實存在了,表單已經被提交了
// 所以使用switch()函數來處理
// 這裡的決定變數是使用者選擇的日期
switch ($day)
{
// 第一種情況
case "Monday":
$fortune = "當能找到使每件事做的複雜精彩的方法的時候,不要使它簡單有效";
break;
// 第一種情況
case "Tuesday":
$fortune = "生活是遊戲的橋樑?-你一定施展某種巧計了。";
break;
case "Wednesday":
$fortune = "什麼能使頭腦清醒的人生活在這個世界上永不發瘋?";
break;
case "Thursday":
$fortune = "不要瘋狂,要有趣";
break;
case "Friday":
$fortune = "僅僅跟著時代走,順著風氣行,當你得到提升時你會發現類型是個魔鬼。";
break;
// 如果以上條件都不符合...
default:
$fortune = "很抱歉,周末關門";
break;
}
?>
< html>
< head>
< basefont face="Arial">
< /head>
< body>
Here is your fortune for < ? echo $day; ?>:
< br>
< b>< ? echo $fortune; ?>< /b>
< /body>
< /html>
< ?
}
?>
--------------------------------------------------------------------------------
正如你所看到的,指令碼首先測試 $submit變數是否存在,如果沒找到,它將認為表單沒有提交並且顯示最初的日期挑選清單。
由於< FORM>標籤的 ACTION屬性設為同一個 PHP指令碼,一旦表單被提交,同一個指令碼將被呼叫來處理表單的輸入。然而,被呼叫後的這次$submit變數將已經存在了,所以將不再顯示最初的頁面,反而顯示具有幸運甜餅的頁面了。
注意為了使這些能正常工作,你的
--------------------------------------------------------------------------------
< input type="submit">
--------------------------------------------------------------------------------
必須有一個賦予"submit"值的NAME屬性。
--------------------------------------------------------------------------------
< input type="submit" name="submit">
--------------------------------------------------------------------------------