2017-06-09 63 views
1

我在我的網站上設計了一個通過AJAX請求運行的論壇,因此URL根本不會改變。你點擊一個按鈕,AJAX請求一個PHP文件,並且響應更新客戶端。這適用於我 - 但是,我需要知道是否可以在表單提交後通過一系列AJAX請求重定向用戶。PHP/JQuery - 將頁面重定向到AJAX請求

  1. 用戶輸入forum.php頁
  2. 用戶點擊主題按鈕(AJAX請求加載線程)上螺紋標題
  3. 用戶點擊(AJAX請求加載回覆)上的回覆按鈕
  4. 用戶點擊(AJAX請求加載文本編輯器)
  5. 用戶點擊提交(AJAX請求提交表單)

在這一點上,我想將用戶重定向BA ck到那個特定的線程 - 因此我相信他們需要通過一系列的AJAX請求來定向。這可能嗎?

額外:如果您認爲此論壇過程效率不高,請讓我知道您的意見。

+1

您不指定#5是否也是AJAX。如果PHP通過頁面加載而不是AJAX來處理表單POST值,那麼標準做法是將它們返回到header(),他們來自哪裏...... –

+0

我建議不要過度使用ajax。對於論壇中的所有導航,看起來很煩人。 – developerwjk

+0

#5也是一個AJAX請求到一個PHP文件(更新問題) - 我正在考慮header()選項,但我如何指定,如果URL從未改變? @Kevin_Kinsey –

回答

1

看來你有幾個選擇:

  1. 繼續使用Ajax的提交,所以沒有必要重定向。 (編輯:聽起來你已經這樣做了,所以這個問題可能是你放棄你要顯示的內容,而不僅僅是隱藏它暫時)
  2. 實施辦法直接加載一個頁面到論壇。這是除了ajax調用之外的。您將跟蹤論壇ID,將其包含在$ _POST參數中,並讓服務器重定向到適當的URL。
  3. 生成JavaScript(或適合您的固定javascript使用的適當字段/數據),這會導致頁面在重新加載時自動進行必要的AJAX調用。
  4. 跳過阿賈克斯,只是用整頁加載的一切

混合東西,有時通過使用Ajax,有時使用頁面加載不理想,但它有時是難以完全避免的。

請記住用戶在瀏覽器中點擊後退按鈕或歷史記錄時會發生什麼情況。你想讓他們在回擊時離開你的應用嗎?他們最終可能會在混合Ajax /頁面加載的奇怪位置結束。爲此,人們贊成(4)

(2)可能是很多工作。

(1)將是確定的,並且BACK按鈕只會始終以用戶遙想到其他網站。就個人而言,這不會打擾我。

(3)將是一個痛苦,也很慢,然後你會得到非常奇怪的前進/後退的行爲。避免。

(4)可能是最好的。

+0

#2是完美的 - 我已經爲我的sql查詢保存了變量。我創建了一個帶有較小版本ajax請求的JQuery函數,並對變量進行了硬編碼以便測試 - 它工作正常!所以現在我將通過URL從php文件傳遞變量,並使用GET方法接收它們,它應該是完美的。 –

相關問題