2010-02-01 66 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。

相关问题