我試圖顯示一個多頁面表單,它使用會話跟蹤將提交的數據從一頁保存到下一頁。 $_POST['stage']
確定應該顯示哪個表單。每個表單都有一個隱藏的輸入類型,其值設置爲將$stage
變量加1,但是當我從第一個表單提交數據時,$stage
的值似乎保持不變,因爲我沒有看到下一個表單。會話在php.ini
中啓用。在PHP中使用多頁表單的會話跟蹤
這裏是我的例子:
<?php
session_start();
//Determine which integer to assign to the stage
if (($_SERVER['REQUEST_METHOD'] == 'GET') || (!isset($_POST['stage']))) {
$stage = 1;
} else {
$stage = (int) $_POST['stage'];
}
//Save any submitted data
if ($stage > 1) {
foreach ($_POST as $key => $value) {
$_SESSION[$key] = $value;
}
}
?>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>My Form Example</title>
</head>
<body>
<?php if ($stage == 1) { ?>
<form action='<?php echo $_SERVER['SCRIPT_NAME'] ?>' method='post'>
<label for='firstField'>First field:</label>
<input type='text' name='first_field /><br />
<input type='hidden' name='stage' value='<?php echo $stage + 1 ?>' />
<input type='submit' value='Next' />
</form>
<?php } else if ($stage == 2) { ?>
<form action='<?php echo $_SERVER['SCRIPT_NAME'] ?>' method='post'>
<label for='secondField'>Second field:</label>
<input type='text' name='second_field /<br />
<input type='hidden' name='stage' value='<?php echo $stage + 1 ?>' />
<input type='hidden' value='Done' />
</form>
<?php } ?>
</body>
</html>
我有寫在我的編碼例子中,沒有結束的單引號,但它沒有顯示當我由於某種原因發佈問題時。這是我的反撥後的第一行代碼。 – Gimme5