明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

PHP4實(shí)際應(yīng)用經(jīng)驗(yàn)篇(8)

[摘要]作者:孫運(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">
--------------------------------------------------------------------------------