如何創建跨多頁的表單?我想問很多問題,並根據以前問題的答案,提出新的具體問題。跨越多頁的表單
跨越多頁的表單
回答
有幾種方法可以做到這一點:
- 增量填充數據庫,通過提交提交
- 將所有表單域的每個頁面上,但是隱藏(
<input type='hidden' ...>
)中的那些不應該出現(如@Trufa在另一個答案建議) - 厚積薄發多數民衆贊成隱含堅持在會話對象(取決於你的服務器架構)
- 在一個或多個Cookie積累的東西(好像噁心由我列出了它的完整性)
如果您想超級流行,可以在HTML5客戶端存儲中積累信息。當然,這將排除舊的微軟瀏覽器。
跨越多個頁面的單一表單並不存在:每個頁面/表單都獨立於其他頁面。
如果您以某種方式跟蹤已輸入的內容(可能在會話變量中),那麼您可以直接在新窗體中顯示新問題,直到獲得所需的所有數據。
傳統方法:將所有以前對問題的回答存儲在後續頁面的<input type="hidden">
字段中,以便最後一個表單包含整個提交(僅全部不可見)。缺點:文件上傳令人討厭,數據量可能會變大。
常用方法:隨時隨地將答案扔到會話或餅乾中,最後挑選出來。缺點:併發操作以不可預知的衝突結果結束。文件上傳仍然很煩人。我會爲此避免Cookie /會話存儲解決方案。
現代方法:有一個簡單的(長)單一形式,但使用JavaScript只顯示一部分。在點擊「下一步」時,只需隱藏上一頁的內容並顯示下一頁。最後一個按鈕是真正的提交按鈕。
+1應該強調現代的方法。 :) – galambalazs 2010-10-16 22:18:49
+1常用方法。現代的是「酷」,但在客戶端很重。 – sdadffdfd 2010-10-16 22:23:16
我假設你的問題,因爲沒有多頁形式這樣的事情,你的意思是你如何通過使用多個頁面,每個包含一個窗體,從用戶建立一組答案。
PHP爲此提供的機制是會話機制。當用戶提交每個頁面時,你將在會話中建立一組答案,當你有一個完整的集合時,會話中的全套答案將被提交給數據庫。
當然,這不是唯一的方法,您也可以在每次提交頁面時逐步將數據添加到數據庫中,但是最終會得到部分答案集,其中人們只完成了第一頁或前幾頁頁面,然後放棄它。你必須編寫代碼來處理這些部分提交。
- 1. 跨越多個實體的表單
- 2. 如何正確創建跨越多個頁面的HTML表單
- 3. 跨越太多列的表?
- 4. 跨越多列的表格
- 5. iTextSharp表頁橫向跨越
- 6. HTML:跨多個td列跨越表格
- 7. ssrs多列表數據跨列和/或頁錯誤跨越
- 8. 跨越多個頁面的相同Html
- 9. 跨越單頁記錄通過多個頁面
- 10. 跨越多個列的JTable單元
- 11. 跨越多個html頁面選擇id
- 12. 跨越多個列
- 13. 跨越多行的長表達式
- 14. 跨越多個表的索引列
- 15. MySQL的計算跨越多個列/表
- 16. Tablix矩陣 - 跨越多行的圖表
- 17. NHibernate的域對象跨越多個表
- 18. Html5的跨越和表單元格
- 19. 如何創建正確跨越多頁的可打印列表
- 20. 如何下載跨越多個網頁的SharePoint列表
- 21. 跨越iText中多個頁面的表格
- 22. 讓一些DataGrid單元跨越多列
- 23. 防止跨越分頁jQuery數據表的多個單選按鈕選擇
- 24. 跨越多張紙的宏
- 25. 跨越兩個表
- 26. 跨越3個表
- 27. 如何跨越表
- 28. 跨越2個表
- 29. 跨越連接表
- 30. 空間表跨越
那麼最新的問題? – 2010-10-16 21:51:36
到目前爲止,你有什麼? – 2010-10-16 21:53:16