對於我正在爲一個班級工作的購物車應用程序,我必須在每個步驟中顯示信息。我的問題是我只能從上一步顯示信息。對於第1步,從收音機中選擇一個項目。然後,它被保存,像這樣:
function processStep1() {
//Implemented sessions
$_SESSION["items"] = $_POST["items"];
displayStep2();
}
第二步要求的數量,然後驗證它,就像這樣:
function processStep2() {
//Implemented sessions
$_SESSION["quantity"] = $_POST["quantity"];
if (preg_match('/^\d+$/',$_POST["quantity"])) {
displayStep3();
} else {
echo "ERROR: Quantity entered was invalid. Please try again.";
displayStep1();
}
}
(順便說一句,我似乎無法得到這個剛剛刷新當前步驟(這將是displayStep2)當輸入不是一個整數,因爲我每次嘗試時都會得到一個錯誤。如果任何人有答案,爲什麼會這樣,這也是有幫助的。)
但是,然後在窗體的步驟3上,我嘗試運行以下行:
<p>You have selected <?php echo $_POST["quantity"] ?> units of the <?php echo $_POST["items"] ?>.<p>
每次發生錯誤都會響應。我已經嘗試了相同輸出的各種配置,並確定它總是會解析$ _POST [「quantity」],但從不會解析$ _POST [「items」]。我需要它來做到這一點。
你是否用'session_start()'開始了你的會話?這必須在讀取或寫入會話數據的每個腳本的頂部完成。接下來,一定要讀取存儲在會話中的數據,而不是$ _POST變量:'<?php echo $ _SESSION ['quantity']?> units ... <?php echo $ _SESSION ['items']?> ...' – 2014-11-05 19:54:36
在這裏脫離主題咆哮:不要使用正則表達式來檢查數值是否爲數值,而是使用本地函數(http://php.net/manual/en/function.is-numeric.php) – DarkBee 2014-11-05 20:05:19