2010-02-01 101 views
1

當我在瀏覽器中使用以下鏈接時,會在此頁面的表單中填入一條記錄以進行編輯。如何在提交表單後從URL中刪除參數?

http://vcred.dev/#personal/myacademicdetail?record_id=15 

當我點擊「保存」按鈕,記錄被成功更新數據庫和形式更新的值仍然是在我的面前。對我來說沒問題。但是在發佈表單後我只有一個問題。地址欄中的URL與之前的帖子相同。

http://vcred.dev/#personal/myacademicdetail?record_id=15 

但我想沒有地址欄PARAMS短URL我的表格後,張貼這樣的:

http://vcred.dev/#personal/myacademicdetail 

它是如何可能使用javascript?

回答

1

因爲你是在URL中使用散列,你可以做在JavaScript如下:

location.href = location.protocol + "//" + 
       location.host + 
       location.pathname + 
       location.hash.split('?')[0]; 

這不會導致頁面刷新,在這個堆棧溢出職位描述:How do I, with javascript, change the URL in the browser without loading the new page?

+0

是的,它幫助了我,但我必須編輯你的陳述。 location.href = location.protocol +「//」+ location.host +'/#personal/myacademicdetail'; – NAVEED 2010-02-01 11:51:02

+0

事實上,我剛剛注意到你的網址中有一個散列(#)。你可以使用我的修改後的答案讓它工作,而不用在散列之後對零件進行硬編碼。 – 2010-02-01 11:54:24

+1

是的。它現在正在完美運作。謝謝 – NAVEED 2010-02-01 12:13:58

0

我不喜歡這樣,使用PHP

$referer_host = $_SERVER[ "HTTP_HOST" ]; 
$referer_uri = explode("?", $_SERVER[ "REQUEST_URI" ]); 
$referer = $referer_host . $referer_uri[ 0 ]; 

我假定你所提到zend-framework爲您的標籤之一,你可能想也能看到PHP的解決方案。

我只是像這樣爆炸URL,然後使用標題重定向。

+0

是的,這是一種方式,但我想這樣做,而無需重新加載頁面。 – NAVEED 2010-02-01 12:15:13

1

至於Zend框架去,之後在保存記錄使用:

$this->_redirect('#personal/myacademicdetail'); 

這將告訴用戶的瀏覽器訪問的URL。

相關問題