2009-04-08 43 views
0

我有一個相當長的HTML表單,用戶填寫。填寫完後,會向用戶提供他們提交數據的預覽。從那裏他們可以將數據提交到系統或返回並編輯它。我想知道處理這個預覽步驟的最佳方法是什麼。有些想法我已經是:表單提交預覽

  • 存儲在cookie的形式數據 預覽
  • 存放在 會議
  • 把數據在數據庫表單數據,與 狀態欄顯示這是一個 預覽

當你創建這樣的預覽時,你通常會做什麼?還有其他問題需要考慮嗎?

回答

3

將數據作爲隱藏字段()。

爲什麼不cookie或session? - 如果用戶決定放棄這些數據,他可能會導航到其他頁面。當他稍後回來看到數據完好時,他可能會感到驚訝。

爲什麼不數據庫? - 如果用戶只關閉瀏覽器,誰清理你的數據庫中的數據? ...我寧願不寫一個cron工作。

1

我不確定這是否是最佳做法,但是當我完成這項任務時,我已將它放入會話中。我希望用戶能夠在單一會話期間預覽並提交/重新編輯數據,因此會話對我來說已經足夠了。

如果您希望預覽在您的用戶機器上保留,您應該使用cookie - 這意味着用戶不必在單個會話期間預覽/重新編輯預覽,但可以在此操作之間關閉瀏覽器,並且返回到下一次會議的預覽。使用這個問題,你必須考慮到用戶可以在他的瀏覽器中拒絕cookies。這就是爲什麼人們通常會將會話與Cookie結合在一起。

將數據放入數據庫(帶狀態列)不是必需的,除非您想要以某種方式跟蹤和存儲預覽和編輯操作。您可以將數據庫想象成您桌子上的抽屜 - 您可以將任何想要存儲和隨後找到的文檔放在那裏。如果您只是繪製預覽草稿,並且在提交結果後,只有最終版本存儲在抽屜/數據庫中,預覽會被壓縮並丟棄,而不會將其放入數據庫中。但如果由於某種原因,你認爲你以後會通過這些草稿,那麼他們必須存儲在一個數據庫中。

我不知道這是否是我的英語清楚,但我盡力了:d

+0

關於DB的好處,似乎沒有必要在那裏存儲預覽數據,除非我想稍後使用它。 – 2009-04-08 07:02:21

0

我會根據形式多麼困難擺在首位填寫衡量它。如果這是一個漫長的過程(如抵押貸款或其他信息),並且您有用戶登錄,您可能希望爲他們提供一個機會來保存未完成的表單並稍後再回來。

會話僅適用於(取決於您的設置)將需要不到一個小時的任務。手動輸入數據(如CD/DVD編目)易於開始並且易於完成,這對於存儲會話來說是完美的。同樣,如果這個人必須停下來爲某些文件(也是按揭應用程序或在線稅務表格等)停下腳步,那麼如果會話超時,他們就會有一個非常憤怒的人。必須重新鍵入信息。

我會避免直接將內容注入到cookie中,因爲數據會傳遞給後續請求,並且假設您已經有權訪問基本會話功能。

如果你帶着一個數據庫,你需要時間戳訪問(假設你不只是留下一些由你的用戶確定的保存名稱,如'我的2008年抵押貸款文件'),所以你可以稍後清理它。如果用戶將其保存爲中間形式,則將其保留,直到完成表單或將其刪除。