我目前正在使用$_SESSION
构建多页表单,到目前为止,所有内容都工作正常。然而,即使我能够在6页结束检索所有数据,似乎是不可能回去的形式,如果用户犯了一个错误。以多页形式返回
假设他在第5页,他意识到他需要返回第3页来改变某些内容,他将无法做到这一点。火狐给出了这样的错误消息:
文件过期 本文档不再可用。 请求的文档不可用在Firefox的cache.As安全起见,火狐不会自动重新请求敏感documents.Click再次尝试从网站重新请求文档。
这是我的形式是什么样子,这个是形式,1.PHP:
<form action="Form-2.php" method="post">
<fieldset>
<legend>Information</legend>
<p>
<label for="name">Name</label>
<input id="name" type="text" name="name" required/>
</p>
<p>
<label for="age">Age</label>
<input id="age" type="number" name="age" placeholder="Ex. 1988" required/>
</p>
<p>
<input id="sex-m" type="radio" name="sex" value="Male" required/>
<label for="sex-m">Male</label>
<input id="sex-f" type="radio" name="sex" value="Female" required/>
<label for="sex-f">Female</label>
</p>
</fieldset>
<input type="submit" value="Next page"/>
</form>
我使用SESSION
检索从以前的表格数据,这个人是来自晶,2.PHP :
session_start();
$_SESSION['name'] = $_POST['name'];
$_SESSION['age'] = $_POST['age'];
$_SESSION['sex'] = $_POST['sex'];
等六页。
它工作正常,它检索所有值正确,但填写表单时不可能返回。
我在做什么错?如何确保用户能够返回,如果他犯了一个错误?
感谢您的帮助。
编辑:
我结束了下面的代码,解决我的问题的一半。仍然表单的2.PHP:
session_start();
if (isset($_SESSION['location']) && isset($_SESSION['job'])) {
$location = $_SESSION['location'];
$job = $_SESSION['job'];
} else {
$_SESSION['name'] = $_POST['name'];
$_SESSION['age'] = $_POST['age'];
$_SESSION['sex'] = $_POST['sex'];
$location = '';
$job = '';
}
然后,我只是显示在字段中的值:
如果文本:<?php echo $location; ?>
如果电台:<?php if(isset($job) && $job == "Yes"){echo "checked=\"checked\" ";} ?>
它工作的很好,不同的形式 - 如果价值已经设定 - 预填充就好了。
我的问题是,你可以看到,如果我回去变化的值,它不会因为我忽略POST
如果存储在SESSION
相应的值考虑在内。
我不知道如何使这个工作正常...任何提示?
Fyi,英文单词“信息”不存在。它始终是“信息”。 – ThiefMaster
的确,我很快翻译了我的表格,并且错过了这个! – morgi