首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

PHP 多頁表單實現:隱藏字段傳遞狀態技巧

     編輯:PHP 綜合知識

HTTP 無狀態特性下,跨頁面表單數據傳遞可通過隱藏字段在頁面間「接力」傳遞,無需數據庫或 Cookie。

核心思路

每頁表單包含前頁所有數據的隱藏字段,提交時攜帶歷史數據,最終頁一次性處理。使用 $stage 變量控制流程。

三階段表單範例

第一頁:收集姓名

<?php
function display_name() {
    global $PHP_SELF;
?>
<form method="GET" action="<?php echo $PHP_SELF; ?>">
  Name: <input type="text" name="name"><br>
  <input type="hidden" name="stage" value="cheese">
  <input type="submit" value="Thanks!">
</form>
<?php } ?>

第二頁:選擇奶酪偏好(攜帶姓名)

<?php
function display_cheese() {
    global $PHP_SELF, $name;
?>
<form method="GET" action="<?php echo $PHP_SELF; ?>">
  Favorite Cheese:
  <input type="radio" name="cheese" value="brie">Brie
  <input type="radio" name="cheese" value="cheddar">Cheddar
  <input type="radio" name="cheese" value="mozzarella">Mozzarella<br>
  Favorite Times:
  <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<br>
  <input type="hidden" name="name" value="<?php echo htmlspecialchars($name); ?>">
  <input type="hidden" name="stage" value="results">
  <input type="submit" value="Thanks!">
</form>
<?php } ?>

關鍵點:用 htmlspecialchars() 轉義輸出,防止 XSS 與 HTML 結構破壞。

控制邏輯

<?php
if (empty($stage)) display_name();
elseif ($stage == 'cheese') display_cheese();
else process_form(); // 最後處理
?>

新增頁面只需添加顯示函數並在控制邏輯加一行 elseif,擴展極簡單。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved