我有一个表格,我想发布到同一页面。表单操作包含页面上包含它的元素的片段标识符 - 我想要它做的是发布数据,然后在同一点重新加载同一页面,这样用户就不需要向下滚动。
示例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>
但是我有几个问题 - 首先我不确定这是不是很好的做法,也无法找到 被认为是片段标识符的良好做法。
其次,其他一些人说,当他们点击提交时,表单有时会“跳到顶端”。我还没有能够重现这一点,但似乎很明显,浏览器不是发布数据,而是使用片段标识符操作。
有人能建议更好的方法吗?
答案 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>