• <label id="pxtpz"><meter id="pxtpz"></meter></label>
      1. <span id="pxtpz"><optgroup id="pxtpz"></optgroup></span>

        當前位置:雨林木風下載站 > 技術開發教程 > 詳細頁面

        學習用php創建多頁表單

        學習用php創建多頁表單

        更新時間:2022-05-13 文章作者:未知 信息來源:網絡 閱讀次數:

        當然,到這里并未結束。畢竟,如果可以在一個頁面上建立多個表單,為何不能建立跨多頁面的表單呢?

        不幸的是,用 HTTP從一頁面傳送數據到另一頁面并不輕松。因為在 HTTP協議中沒有內建機制以定義系列頁面的概念。不過,僅需通過一些靈巧的技巧,以及PHP 某些有用的函數,我們就可以不用花太多力氣而突破此限制。在此章節中,關鍵思想在于把上一頁面獲取的輸入存到下一頁面表單的隱含變量中。當我們在屏幕不同頁面切換時,代碼也在頁面間傳遞信息,每一表單都含有上一個表單的數據。這個方法似乎有點笨拙,不過就目前情況而言是最為簡便的方法——且無需使用數據庫或cookies。

        意料之中的是我們將擴展對變量$state的使用以適應此特性。這正是為什么我們過去學習了關于此技巧的內容,而沒有打算使用更為簡單的方式處理單一頁面中的多個表單。

        為了方便起見,我們將重復使用先前的表單范例。但這次我們將將其拆分為兩個頁面,而非把有關乳酪的重要問題跟用戶名稱放在同一頁面之上。

        由此會得到三個函數而非兩個。此外,對函數略微更名以反映其內容上的改變。display_form() 現已改名為display_name()。

        <?php

        function display_name() {

        global $PHP_SELF;

        ?>

        <FORM TARGET="<?php echo $PHP_SELF; ?>" METHOD=GET>

        Name: <INPUT TYPE=TEXT NAME="name"><BR>

        <INPUT TYPE=HIDDEN NAME="stage" VALUE="cheese">

        <INPUT TYPE=SUBMIT VALUE="Thanks!">

        </FORM>

        <?php

        }

        ?>


        與先前所介紹的函數相同,但我們先解決下一問題,并把下一stage的名稱改為 cheese以更明確地告之用戶下一步要做什么。



        接下來是display_cheese()。

        <?php

        function display_cheese() {

        global $PHP_SELF;

        global $name;

        ?>

        <FORM TARGET="<?php echo $PHP_SELF; ?>" METHOD=GET>

        Favorite Cheese: <INPUT TYPE=RADIO NAME="cheese" VALUE="brie">Very soft French Brie

        <INPUT TYPE=RADIO NAME="cheese" VALUE="cheddar">Farmhouse English Cheddar

        <INPUT TYPE=RADIO NAME="cheese" VALUE="mozzarella">Italian Buffalo Mozzarella

        Favorite Times to Eat Cheese: <INPUT TYPE=CHECKBOX NAME="times[]" VALUE="m">Morning

        <INPUT TYPE=CHECKBOX NAME="times[]" VALUE="n">Noon

        <INPUT TYPE=CHECKBOX NAME="times[]" VALUE="d">Dinner

        <INPUT TYPE=CHECKBOX NAME="times[]" VALUE="l">Late night

        <INPUT TYPE=HIDDEN NAME="name" VALUE="<?php echo htmlspecialchars($name); ?>">

        <INPUT TYPE=HIDDEN NAME="stage" VALUE="results">

        <INPUT TYPE=SUBMIT VALUE="Thanks!">

        </FORM>

        <?php

        }

        ?>

        以上的代碼看起來應該非常熟悉。除在輸出隱藏的stage元素前先輸出上一部分數據中的 $name變量名及值之外,我們沒有做任何意料之外的修改。我們并未直接輸出變量值,而是通過一個名為htmlspecialchars()的PHP函數。在HTM中,有以下四個字符除被作為標記(markup)使用外,在其他地方不應被使用的:“<”、“>”、“"”、以及“&”。因此,為了確保不使瀏覽器造成混亂,我們通過htmlspecialchars()函數使用$name變量。由此,某個人的名字原為"Bret & Jeff"就會成為"Brett & Jeff" 了。

        現在,當提交此新表單時,不會漏失任何信息。

        以上技巧的作用是我們不必更改原process_form() 函數任何部分。事實上,我們還會保持函數名稱不變。僅需對頁面顯示邏輯加上新的一行。

        <?php

        if (empty($stage)) { display_name(); }

        elseif ($stage == 'cheese') { display_cheese(); }

        else { process_form(); }

        ?>

        看到了嗎?我們只需在先前的兩個聲明中加入elseif。這正是使用變量$stage的巧妙之處。如果我們要再添加幾個頁面,只需寫一個新函數以顯示所要的內容,并當其顯示時加入一行代碼對其進行控制即可。


        溫馨提示:喜歡本站的話,請收藏一下本站!

        本類教程下載

        系統下載排行

        主站蜘蛛池模板: 亚洲专区在线视频| 亚洲伊人tv综合网色| 亚洲avav天堂av在线网毛片| 亚洲成人免费在线观看| 亚洲人成在线播放网站岛国| 国产永久免费高清在线| 亚洲精品你懂的在线观看| 中国一级毛片视频免费看| 中文亚洲AV片不卡在线观看| 美女巨胸喷奶水视频www免费| 国产亚洲日韩在线三区| a毛片免费在线观看| 亚洲人成电影亚洲人成9999网 | 日韩午夜免费视频| 亚洲狠狠色丁香婷婷综合| 永久免费无码网站在线观看| 精品久久久久亚洲| 亚洲国产一区二区三区| 国产一级a毛一级a看免费人娇 | 亚洲级αV无码毛片久久精品| 97无码人妻福利免费公开在线视频| 亚洲精品国产成人专区| 日韩欧美一区二区三区免费观看| 99亚洲男女激情在线观看| 国产亚洲精品不卡在线| 久操视频在线免费观看| 亚洲成A人片在线播放器| 亚洲国产综合无码一区二区二三区| 国产一二三四区乱码免费| 亚洲国产成人久久综合一区| 国产精品无码一二区免费| 99re8这里有精品热视频免费| 亚洲美女人黄网成人女| 啦啦啦在线免费视频| GOGOGO高清免费看韩国| 亚洲国产品综合人成综合网站| 在线观看国产情趣免费视频| a级毛片免费全部播放| 亚洲影院天堂中文av色| 亚洲色欲色欲www在线丝| 性做久久久久久久免费看|