我正在处理一个包含许多收音机的调查多步骤表格。
他们有一些默认状态
用户操作它们以选择他的偏好。
现在客户希望在点击浏览器后退按钮或侧面导航器链接(指向调查的前几个阶段的一组链接)时,让用户先前选择的无线电状态。
以下是导航器的外观:
<ul>
<li><a href="index.php?site=form1">Step1</a></li>
<li><a href="index.php?site=form2">Step2</a></li>
<li><a href="index.php?site=form3">Step3</a></li>
</ul>
整个调查过程中只有一个$ _SESSION收集数据。
我知道我可以直接从$ _SESSION加载信息,但是当请求来自导航器链接/后退按钮时,我需要替换默认状态。
答案 0 :(得分:0)
有两种主要的方法,基本上你是说收音机的选择状态需要保存在你表单的不同页面之间。
因此,当您返回之前未提交的页面时,选项应该仍然相同。
有两种关键方法,服务器端使用PHP或客户端使用Javascript
<强> PHP 强>
您可以在网站上设置任何链接以提交表单,然后您可以保存收音机选择,然后在创建表单时可以检查以前选择的值
此信息可以保存在$_SESSION
中,但每次更改页面时都需要提交表单(您可以更改链接以执行此操作)
<强>的Javascript 强>
你可以写一些记住选择内容的javascript,并将它们作为cookie存储在用户浏览器中,这可以在每次点击按钮时更新。当页面加载时,javascript会检查cookie(或本地存储)并加载之前的选项。
当他们完成并提交表单后,您就会清除javascript
基本示例
$('form input[type=radio]:checked')
一旦我掌握了更多信息,我将进一步充实这个答案
答案 1 :(得分:0)
发布表单后,您可以在会话中保存值。再次访问上一页(或甚至首先加载它)时,读取会话的值并检查指定的无线电。如果您第一次访问页面,会话中将没有数据,因此不会检查任何人。
您还可以使用JavaScript和Cookie轻松存储选定的值。
答案 2 :(得分:0)
一种非常简化的可能解决方案:
<?php
session_start(); // this needs to be at the top of all pages using $_SESSION (before anything else) else $_SESSION will always be empty
if($_POST['vehicle']){
$_SESSION['checkbox1'] = $_POST['vehicle'];
}
print_r($_SESSION); // remove this line after testing. It will show you the contents of the $_SESSION, which is handy for seeing when variables are set within it
?>
<!DOCTYPE html>
<html>
<body>
<form action="" method="post">
<input type="checkbox" name="vehicle" value="Bike"<?php if($_SESSION['checkbox1'] == "Bike"){ echo " checked"}?>>I have a bike<br />
<input type="checkbox" name="vehicle" value="Car"<?php if($_SESSION['checkbox1'] == "Car"){ echo " checked"}?>>I have a car <br />#
<input type="submit" value="Go" />
</form>
</body>
</html>
您可以在隐藏的输入区域中添加第一页生成的唯一ID,当发布时,该ID可以构成会话变量名称的一部分。从那里,信息将在该变量名称下的$ _SESSION中编入索引,从而更容易将数据拉回或创建新的表单会话。
希望我没有失去你。