我目前正在使用$_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