【问题标题】:How to jump to anchor tag on php page after html form submitshtml表单提交后如何跳转到php页面上的锚标记
【发布时间】:2015-01-07 20:26:10
【问题描述】:

我的 index.php 页面使用了一个名为 template.html 的模板,这个 html 文件中有一个表单。表格的第一行是:

<form name="search" method="get" action="thumbnails.php?#myAnchor">

thumbnails.php 也使用 template.html 作为模板。当用户在索引页面上提交表单时,我希望它重定向到 thumbnails.php(就像现在一样),然后转到我在 template.html 中编写的锚点,如下所示:

 <a name="myAnchor"></a>

您可以在下面自己测试它,只需在顶部搜索框中搜索“nature”,它会将您重定向到 thumbnails.php 的顶部,但我希望它向下滚动到嵌入在模板中的锚标记文件(见 thumbnails.php 源代码) -- My Site

这是thumbnails.php的链接 这是template.html的链接

我已经阅读了大量的解决方案,但似乎没有任何效果。想法??谢谢

【问题讨论】:

  • 现在不再使用&lt;a name=""&gt;,改用&lt;anything id=""&gt;
  • 没有。表单提交后,总是重定向到另一个页面或同一页面的另一个实例以避免重复提交。在该重定向中,您可以使用#,但您不会在表单操作中包含#也永远不会停留在表单提交到的页面上但始终重定向。
  • 您也从不在表单操作中包含?。这将附加在表单提交上。您在表单操作中输入的任何参数(如 ?x=y)都可能在某些浏览器中被删除。
  • 查找 POST-redirect-GET 模式。停留在您提交表单的 URL 上是危险的。考虑一个愚蠢的银行,在您提交“提取终身储蓄”交易后这样做。你点击了重新加载,现在你又转移了你的毕生积蓄,最终被 $everything_you_had 掉进了坑里。
  • @Dai,您有该声明的参考资料吗?

标签: php html forms get anchor


【解决方案1】:

正如Dai所说的in their comment

[...] HTML5 规范从 &lt;a&gt; element (obsolete note)。 The specification for fragment scrolling 优先于 id 而不是 name 并且只给出 用于向后兼容的名称属性说明。

在您的代码中,您必须将id 属性添加到template.html 中的锚点:

<a name="myAnchor" id="myAnchor"></a>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-23
    • 1970-01-01
    • 2012-05-13
    相关资源
    最近更新 更多