对于我正在上课的购物车应用程序,我必须在每个步骤中显示信息。我的问题是我只能显示上一步的信息。对于步骤1,从单选框中选择一个项目。然后将其存储为:
function processStep1() {
//Implemented sessions
$_SESSION["items"] = $_POST["items"];
displayStep2();
}
步骤2询问数量然后验证它,如下所示:
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 [&#34;数量&#34;],但绝不会解析$ _POST [&#34; items&#34;]。我需要它来做两件事。
答案 0 :(得分:2)
你的第三张表格没有&#34;见&#34; $ _POST [&#39; items&#39;]因为它未提交给该表单。您将其存储在会话中。在您的第三个表单上开始一个新会话并请求$ _SESSION [&#39; items&#39;]。
第1步
<form name="step1" method="post" action="whateverPageContaintsProcessStep1.php">
<input type="radio" name="items" value="item1">Item 1
<input type="radio" name="items" value="item2">Item 2
</form>
当我们提交表单时,将要发送的$ _POST数据将是我们选择的单选按钮的值。
第2步
<form name="step2" method="post" action="whateverPageContaintsProcessStep2.php">
<input type="number" name="quantity" value="0" />
</form>
当我们提交form2时,$ _POST数据将包含名为quantity的文本框的值,但是由于此表单不包含先前的单选按钮,因此该值不会发送到服务器,因此我们将无法访问它在&#39; whateverPageContaintsProcessStep2.php&#39;。