PHP4實(shí)際應(yīng)用經(jīng)驗(yàn)篇(8)
發(fā)表時(shí)間:2024-01-03 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]作者:孫運(yùn)動(dòng) 你可能已經(jīng)注意到,到目前為止,在我們給你的所有例子中,我們都是給你兩個(gè)頁面-一個(gè)單純的具有表單的HTML頁面,和另一個(gè)用來處理表單輸入并產(chǎn)生相應(yīng)輸出的PHP腳本。然而,PHP提供了一種把那兩個(gè)頁面通過 submit 變量結(jié)合在一起的文雅的方法 你已經(jīng)知道,一旦一個(gè)表單提交給PHP...
作者:孫運(yùn)動(dòng)
你可能已經(jīng)注意到,到目前為止,在我們給你的所有例子中,我們都是給你兩個(gè)頁面-一個(gè)單純的具有表單的HTML頁面,和另一個(gè)用來處理表單輸入并產(chǎn)生相應(yīng)輸出的PHP腳本。然而,PHP提供了一種把那兩個(gè)頁面通過 $submit 變量結(jié)合在一起的文雅的方法
你已經(jīng)知道,一旦一個(gè)表單提交給PHP腳本,所有的表單變量就變成了的PHP變量,F(xiàn)在,除了用戶定義的變量外,在你每次點(diǎn)擊表單的“提交(SUBMIT )”按扭的同時(shí),也就創(chuàng)建了一個(gè)名為 $submit的變量。因此,通過測試該變量是否存在,聰明的程序員可以只使用一個(gè)頁面來既初始化表單又產(chǎn)生提交后的輸出。
讓我們給你示范一下-我們用一個(gè)頁面來實(shí)現(xiàn)上面那個(gè)幸運(yùn)甜餅例子,包括最初的選擇日期頁面和后面的幸運(yùn)甜餅頁面。我們假設(shè)新的PHP文件也叫"cookie.php"
--------------------------------------------------------------------------------
< ?
if (!$submit)
{
// 如果$submit不存在, 這暗示表單還沒有提交
// 所以顯示第一個(gè)頁面
?>
< 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 確實(shí)存在了,表單已經(jīng)被提交了
// 所以使用switch()函數(shù)來處理
// 這里的決定變量是用戶選擇的日期
switch ($day)
{
// 第一種情況
case "Monday":
$fortune = "當(dāng)能找到使每件事做的復(fù)雜精彩的方法的時(shí)候,不要使它簡單有效";
break;
// 第一種情況
case "Tuesday":
$fortune = "生活是游戲的橋梁?-你一定施展某種巧計(jì)了。";
break;
case "Wednesday":
$fortune = "什么能使頭腦清醒的人生活在這個(gè)世界上永不發(fā)瘋?";
break;
case "Thursday":
$fortune = "不要瘋狂,要有趣";
break;
case "Friday":
$fortune = "僅僅跟著時(shí)代走,順著風(fēng)氣行,當(dāng)你得到提升時(shí)你會(huì)發(fā)現(xiàn)類型是個(gè)魔鬼。";
break;
// 如果以上條件都不符合...
default:
$fortune = "很抱歉,周末關(guān)門";
break;
}
?>
< html>
< head>
< basefont face="Arial">
< /head>
< body>
Here is your fortune for < ? echo $day; ?>:
< br>
< b>< ? echo $fortune; ?>< /b>
< /body>
< /html>
< ?
}
?>
--------------------------------------------------------------------------------
正如你所看到的,腳本首先測試 $submit變量是否存在,如果沒找到,它將認(rèn)為表單沒有提交并且顯示最初的日期選擇列表。
由于< FORM>標(biāo)簽的 ACTION屬性設(shè)為同一個(gè) PHP腳本,一旦表單被提交,同一個(gè)腳本將被呼叫來處理表單的輸入。然而,被呼叫后的這次$submit變量將已經(jīng)存在了,所以將不再顯示最初的頁面,反而顯示具有幸運(yùn)甜餅的頁面了。
注意為了使這些能正常工作,你的
--------------------------------------------------------------------------------
< input type="submit">
--------------------------------------------------------------------------------
必須有一個(gè)賦予"submit"值的NAME屬性。
--------------------------------------------------------------------------------
< input type="submit" name="submit">
--------------------------------------------------------------------------------