表单操作属性中的片段标识符

时间:2012-07-20 08:47:53

标签: html forms fragment-identifier

我有一个表格,我想发布到同一页面。表单操作包含页面上包含它的元素的片段标识符 - 我想要它做的是发布数据,然后在同一点重新加载同一页面,这样用户就不需要向下滚动。

示例index.php:

<div>
  some very long content that pushes my form down the page
</div>
<div id="myDiv">
  <form action="index.php#myDiv" method="post">
    <input name="abc" value="123"/>
    <input type="submit" value="submit"/>
  </form>
</div>

但是我有几个问题 - 首先我不确定这是不是很好的做法,也无法找到 被认为是片段标识符的良好做法。

其次,其他一些人说,当他们点击提交时,表单有时会“跳到顶端”。我还没有能够重现这一点,但似乎很明显,浏览器不是发布数据,而是使用片段标识符操作。

有人能建议更好的方法吗?

1 个答案:

答案 0 :(得分:1)

使用header()函数以及标识符提交表单后重定向用户。

<div>
  some very long content that pushes my form down the page
</div>
/*Use header() to redirect the person on the #point*/
<?php
//form data goes here, if it passes everything then use
header('Location:index.php#myDiv');
exit;
?>
<div id="myDiv">
  <form action="index.php" method="post">
    <input name="abc" value="123"/>
    <input type="submit" value="submit"/>
  </form>
</div>