2013-07-11 71 views
2

我在使用我正在構建的應用程序中的PRG模式。有一個多頁表單,我們在發佈每個頁面的表單時驗證信息並將其保存在數據庫中。如果提交通過驗證,那麼我們將用戶重定向到表單的下一頁。這可以像你期望的那樣工作,並且如果使用的命中後退按鈕,它會轉到前面的頁面,不會重新提交警告等。PHP發佈/重定向/獲取返回按鈕問題

由於表單很複雜,爲了使其更友好,驗證失敗後,我們將用戶的條目寫入$ _SESSION,並將它們重定向到具有相應消息的同一頁面。這也適用。

問題是,如果用戶重複發佈未通過驗證的帖子,則後退按鈕歷史記錄將被加載到同一頁面,因此他們需要多次單擊後退按鈕才能返回到其預期的前一頁。我在尋找的是一種在重定向失敗時執行類似javascript的window.location.replace的方法,以便用戶不必多次點擊後退按鈕才能返回上一頁。

這是可能的在PHP與頭或我需要使用JavaScript來實現這一目標?

回答

1

一個選擇是通過AJAX提交驗證,如果驗證通過正確,然後實際提交頁面。否則顯示錯誤消息並保持在同一頁面上。

+0

這是我想到的,但是這個項目是將一個大型表單拆分成5個「鏈接在一起」的表單,並且存在大量的遺留代碼,這實際上是我遇到的唯一問題。如果我們決定完全重構可能是我如何編寫應用程序的應用程序,但目前我沒有足夠的資源來完成此任務。 –

+0

經過適當的考慮和大量實驗後,我得出結論,這實際上是實現這一目標的最佳方法。 –