我正在使用表單使用流程頁面來驗證並處理所有信息。如果出現錯誤或缺少信息,則會通知用戶返回並修復該頁面。但是,當他們這樣做時,他們所輸入的所有其他信息並未顯示在字段中。我怎樣才能做到這一點,因此無論他們投入什麼都會顯示。記住輸入歷史記錄
Q
記住輸入歷史記錄
0
A
回答
2
,最好的辦法是做在同一頁上驗證,只有重定向到另一個頁面時成功:
<?php
if (!empty($_POST['foo'])) {
// validate
if (/* valid */) {
// save data somewhere
header('Location: nextpage.php');
exit();
}
}
?>
<form action="samepage.php">
<input name="foo" type="text" value="<?php if (!empty($_POST['foo'])) echo htmlentities($_POST['foo']); ?>">
<?php if (/* foo was invalid */) : ?>
<p class="error">Please fill in Foo!</p>
<?php endif; ?>
</form>
或者:使用會話。
1
使在同一頁面驗證用JavaScript或AJAX(如果你需要在服務器端檢查)
那麼你就不會丟失任何數據
,你可以在網上很多例子找到(尋找與AJAX表單驗證)
喜歡這篇文章:http://jqueryfordesigners.com/demo/ajax-validation.php
+0
謝謝Haim。仍在學習PHP,對Ajax不夠精通! – AAA 2011-01-27 06:29:38
3
一個簡單的解決方案就是將所有POST數據存儲在SESSION中併發布。
if($_POST){ // if we have any POSTed variables...
$_SESSION['postdata'] = $_POST; // set a browser session with all of the values
}
然後,在您的表單頁上,檢查postdata是否存在,如果是,請填寫輸入值。
if($_SESSION['postdata']){ // if postdata exists
$p = $_SESSION['postdata']; // retrieve values in a new variable
unset($_SESSION['postdata']); // unset session, because you don't want this post data to travel all around your website
/* for each input or whatever you got there... */
echo '<input name="your-key-here" type="text" value="'. $p['your-key-here'] .'" />';
}
就是這樣!玩的開心!
相關問題
- 1. GWT歷史記錄:歷史記號
- 2. 星火歷史記錄網頁卡住
- 3. SQLPLUS會話記住歷史
- 4. TFS簽入歷史記錄
- 5. LDAP登錄歷史記錄
- 6. 活動記錄審計歷史記錄
- 7. iPhone通話記錄/歷史記錄
- 8. 插入新的歷史記錄行
- 9. 將歷史記錄插入新表
- 10. 加入狀態歷史記錄
- 11. Eclipse運行歷史記錄
- 12. 帶歷史記錄的EditText
- 13. Google chrome歷史記錄sqlite
- 14. Nhibernate的歷史記錄
- 15. Eclipse RCP - SelectionService - 歷史記錄?
- 16. HTML5 - 歷史記錄API
- 17. 遠程歷史記錄
- 18. HTML5歷史記錄APi
- 19. Netflix查看歷史記錄
- 20. 將SQL Server點歷史記錄表遷移到歷史記錄表
- 21. 爲什麼會將iframe的歷史記錄添加到歷史記錄中
- 22. 如何在SQL Server中的歷史記錄表中存儲歷史記錄
- 23. 從Git歷史記錄中刪除具有歷史記錄的特定文件
- 24. 如何使用html禁用輸入字段歷史記錄
- 25. 避免輸入文本搜索vim命令歷史記錄
- 26. 表單輸入歷史記錄選擇事件
- 27. 如何禁用Django表單中的輸入歷史記錄?
- 28. 輸入類型按鈕返回歷史記錄返回頁首
- 29. CRM 2011用戶登錄歷史記錄
- 30. VSO git文件歷史中的「簡單歷史記錄(默認)」和「完整歷史記錄」有什麼區別?
我很抱歉,我是PHP新手,第一個PHP代碼在做什麼? – AAA 2011-01-27 06:30:05
@AAA它說:「如果數據已發佈(即如果表單已提交),請進行驗證,如果數據有效,請將其保存在某處並重定向到另一頁。」 – deceze 2011-01-27 06:31:53