2015-03-31 120 views
0

我正在一個有動畫背景的網站上工作,動畫是由javascript支持的,因此當用戶輸入並提交搜索時,如果動畫能夠順利地繼續播放,那麼搜索完成並將結果追加到DOM。PHP MVC追加URL參數,無需重新加載頁面?

我已經成功地將搜索結果從ajax請求返回給JS,儘管固有地,ajax請求的url與當前在瀏覽器中顯示的url不同。

所以我的目標是爲用戶,要他到現場時說,www.example.com/public/home/search

他們鍵入內容到文字輸入,按搜索,網址更改爲類似

www.example.com/public/home/search?q=some+search+query or 
www.example.com/public/home/search/somesearchquery or 
www.example.com/public/home/search/#somesearchquery, etc. 

但頁面狀態保持不變,結果被追加到DOM並沒有全部重新加載發生。

返回上面的url應該加載頁面並自動發送查詢,返回結果已經附加的頁面。

我不知道天氣這是可能的,無論是否遵守MVC模式。

我沒有使用任何mvc框架,並希望避免它,如果我可以,而是使用類似於發現的裸露骨骼系統。 https://www.youtube.com/watch?v=OsCTzGASImQ

任何想法,建議,選擇?

+0

因此,當用戶點擊「搜索」按鈕時,是否要更改網址並在頁面上進行一些更改? – 2015-03-31 13:19:58

+0

如果您需要查詢您需要在前端執行的散列,則散列(#)永遠不會發送回服務器,因此/ search /#somesearchquery =/search /理論上在理論上。 你可以用JS MVC來實現類似AngularJS的路由,或者如果你對PHP感到滿意,可以看看SLIM Framework,它很容易學習,並且非常靈活地創建路由/ apis ... – 2015-03-31 13:20:11

+0

@VitorLima是的,這是正確的。 – 2015-03-31 13:51:27

回答

1

有幾個答案在這裏「更改URL沒有重新加載」,例如:Modify the URL without reloading the page

所以,我認爲你只需要從這些答案中的一個實現一些解決方案,並運行一些JavaScript來改變頁面。

你必須小心,因爲修改後的URL必須加載用戶在javascript引起的更改後看到的頁面的相同版本。否則,如果用戶複製並粘貼網址,他將不會高興。

將其歸檔的一種方法是創建「更新」頁面的JavaScript功能,無需基於文本輸入重新加載它(例如,f)。然後,如果用戶嘗試直接訪問該頁面

www.example.com/public/home/search?q=some+search+query

你的服務器端代碼只返回網頁搜索與在結束這個JavaScript函數的調用,這樣的:

f("some search query")

因此,該功能將更新頁面和最終效果是一樣的,用戶只需在網頁和嘗試後進入類型部分搜索查詢。 (請注意,此功能f可用於這兩種情況:用戶鍵入要搜索的文本以及用戶何時完全粘貼URL)。

相關問題