2010-03-08 54 views
0

我正在使用購買流程。該過程由4個步驟組成。前兩個步驟是我們收集所有客戶數據的地方。第三步通過AJAX將數據發送到我們的服務器,然後顯示付款表單。付款後,客戶感謝第4步。PHP會話與jQuery show()/ hide()

我的問題是關於第1步和第2步。現在所有這些步驟都在同一頁上。我有一個表格分成兩個<div>'s。在第一步中,隱藏第二個div(css:{display:none;}),當客戶轉到第2步時,第一個div隱藏了jQuery hide(),第二個div與jQuery show()一起顯示。

我的問題是,我希望客戶有可能回到步驟1,使用網絡瀏覽器中的「後退」按鈕,這顯然現在不起作用。有沒有任何純粹的JavaScript解決方案?無論如何,我們會要求我們的用戶激活js。還是開始使用會話更好?該網站基於PHP。

我們將看看是否有任何人能夠理解我的想法和問題..

回答

1

更改URL片段(#之後的位)創建瀏覽器歷史記錄條目。很多web應用程序都會利用這個來做你正在描述的內容。看看jQuery BBQ plugin(演示here)。

1

Ajax和後退按鈕通常不發揮得很好。你應該提供一個鏈接,將採取「後退」。但是如果您再次提交第一個表單,這會有什麼問題嗎?你最終會得到額外的或孤兒的條目?

+0

+1此外,如果您將表單拆分成不同的頁面,您可以一邊進行數據驗證一邊驗證數據。可能會讓生活更輕鬆。 – Jeremy 2010-03-08 22:56:13

0

這個最簡單的作弊方式(它遠非可靠的)是有一個javascript函數專門監聽一個「window.unload」事件,但只有當用戶的表單的第二部分可見時不會觸及提交按鈕或您已設置提交或轉到其他頁面的任何其他內容(如鏈接)。

但這是相當侵擾性的,因爲用戶可能真的只想離開頁面;很難設置正確的時間,因爲只有當用戶從第二個表單中單擊時,纔會返回false,而不是將頁面留給其他任何內容(包括您想要的內容);如果他們想要真正關閉窗戶(你應該儘量不要侵犯),它可能會搞砸。基本上,據我所知,沒有用戶點擊後退按鈕的跨瀏覽器JavaScript事件。但其他人可能不會。

但是,如果你能制定出時機,不介意承擔風險,這將是一個巧妙的把戲。