代码之家  ›  专栏  ›  技术社区  ›  Naveed

如何在表单提交后从url中删除参数?

  •  1
  • Naveed  · 技术社区  · 14 年前

    当我在浏览器中使用以下链接时,将在该页上的表单中填充一条记录以进行编辑。

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

    当我单击“保存”按钮时,数据库中的记录已成功更新,带有更新值的表单仍在我面前。对我来说没关系。但我只有一个问题后,表格张贴。地址栏中的URL仍与发布前相同。

    http://vcred.dev/个人/myacademicdetail?ReordOrdID=15
    

    但我希望在我的表单像这样发布后,地址栏中没有参数的短url:

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

    如何使用javascript?

    3 回复  |  直到 12 年前
        1
  •  1
  •   Community Paul Sweatte    7 年前

    由于在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?

        2
  •  1
  •   smack0007    14 年前

    就zend framework而言,保存记录后使用:

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

    这将告诉用户的浏览器转到url。

        3
  •  0
  •   Ondrej Slinták    14 年前

    我会这样做,用 PHP :

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

    我想您可能也希望看到您提到的php解决方案 zend-framework 作为你的标签之一。

    我只需要像这样分解url,然后使用headers进行重定向。