2014-02-18 40 views
2

我有一個表單被驗證的問題,如果沒有通過驗證(在後端完成驗證),將顯示原始提交的數據以供用戶更改。本來這並不是很大,因爲我可以將param數據傳回模板,並將其重新顯示給用戶。但是,我遇到了下拉菜單和複選框以保留提交者原始選擇的問題。舞者和生成表格

我檢查了一些表單驗證的Dancer友好模塊,它們看起來不錯,但是,我還有一個約束:選擇的表單和數據需要能夠在以後重新生成並重新顯示。這意味着需要檢索數據,並重新構建顯示先前選擇的相同信息,已預選下拉列表,檢查複選框和輸入數據的表單。

我不介意使用CGI表單生成方法從後端動態生成表單和它們的選擇,但是如何獲取該數據以便與舞者一起玩並在模板內部顯示?

+0

你可以發佈你的表單模板(特別是下拉菜單和複選框)嗎?你能否澄清一下:「所選擇的表格和數據需要能夠在以後重建和再次顯示」。這是否意味着您需要堅持無效的表單並在用戶返回時重新顯示? – Gordolio

回答

0

如果你打算以後重新顯示,在我看來,你可以用一個窮人的解決方案 - 保存呈現的表單,選擇的東西保存到磁盤或數據庫,以及何時需要顯示再次,只是緩存對他們的東西 - 或者將參數寫入存儲,並且當你需要重新顯示時,通過現在生成表單的相同代碼,但使用保存的參數。

「窮人的方法」很容易實現,但稍後當你發現你正在向人們展示人們過時的形式或其他形式時會咬你。 (這也是一個可能的問題與其他版本 - 組參數可能會隨時間而改變,所以有風險存在,太多,但我認爲風險較小,你正在緩存較少。)

對不起這是一個「如何解決你的問題」的答案,而不是「這是解決你的問題答案的模塊」。然而,將一組參數存儲爲json blob或其他類型的凍結對象並不難,並且所有這些塊都有模塊。