我的复选框有问题,我需要成为棒状表单的一部分,该复选框将通过会话记住,以便用户可以浏览不同的页面,并且在返回时仍然记住他们的复选框选择。
如果用户希望他们的交货详细信息与他们在表单顶部输入的帐单详细信息相同,则该复选框将由用户单击。无需担心我如何将交付详细信息分配给与帐单详细信息相同的内容,就像我在后面的页面中所做的那样。
注意:Javascript 完全不适合这个,无论如何都不需要它,只是提醒一下 :)。这是一种粘性表单,它会在满足所有条件之前发布到自身$flag == "ok"
,然后将用户发送到下一页。
我现在将提供我认为是相关代码的内容:
PHP(这部分代码可能不相关,但正如我所见,我将其包括在内,$_SESSION['sameasbilling']
在我将用户发送到下一页之前设置最终结果(order-confirm.php
)
if ($flag == "ok"){
$sameasbilling = cleanString($_POST['sameasbilling']);
$_SESSION['sameasbilling'] = $sameasbilling;
if (!headers_sent()){
//send user to next page
header("Location: order-confirm.php");
}else{
echo "Not Sent";
}
}
HTML/PHP
<p>Same as billing address?
<input type="checkbox" id="sameasbilling" name="sameasbilling" value="1"
<?php
if (isset($_POST['sameasbilling'])) {
print ' checked="checked"';
$_SESSION['sameasbilling'] = "1";
} else {
$_SESSION['sameasbilling'] = "";
}
?> />
据我所见,最重要的一段代码在上面我尝试确定是否输出checked='checked'以及是否重置/设置'sameasbilling'会话值。
PS 我已经一遍又一遍地重复了很多次,所以我在输入元素中的 IF 语句非常邋遢,但是当你停留在同一页面并收到错误但当你移动到下一页并返回您的选择不会被记住,我知道我根本没有任何代码可以真正做到这一点,但我希望有人能建议我如何实现这一点。