如何提交PHP同一页面而不跳转(无Ajax)

如何提交PHP同一页面而不跳转(无Ajax),php,ajax,Php,Ajax,我已经创建了一个代码,可以在同一个页面上提交,但是它会跳到顶部。我想让它保持在原来的位置 <?php <form name="myform" action="#" method="POST"> <input name="myform" type="submit" value="Send"> </form> <?php

我已经创建了一个代码,可以在同一个页面上提交,但是它会跳到顶部。我想让它保持在原来的位置

<?php

<form name="myform" action="#" method="POST">
  <input name="myform" type="submit" value="Send">
</form>


<?php
  if(isset($_POST['myform'])){ 
    var_dump($_POST);
  }
?>


?>

如果要跳转到页面上的特定位置,请在该位置创建锚定:


并在表格中添加以下内容:


这将导致页面在刷新后跳转到锚点

通过将所有内容都放在
中,可以稍微限制页面刷新的总体效果,但这通常看起来很糟糕:就像非常糟糕的开发一样

一个小小的折衷办法是只将表单放在iframe中:然后submit将只刷新该iframe,而页面的其余部分保持不变


实际上是一个XHR(Ajax)这是最好的做法,因为它将允许您只刷新页面中要刷新的实际部分。

PHP是一种服务器端语言,因此您的页面总是要重新加载。您应该寻找的是如何在页面重新加载时移到网页的某个部分。

因为您添加了以下限制:“没有阿贾克斯“,如果您解释一下原因,这确实很有帮助,因为它听起来似乎非常适合于此。PHP是服务器端的,因此必须刷新页面才能访问表单发布的变量,除非您使用Ajax之类的工具。我不知道在没有Ajax的情况下你会怎么做,因为你必须知道表单提交后滚动页面的位置。要做到这一点,您可能需要Javascript。它不是
而不是“id”吗?或者你能用其中一个吗?我已经很久没有处理过这个问题了,但我总是使用“name”。
id
是正确的,但事实上,它往往令人困惑。更多细节:您也根本不需要
。只需指向页面中的任何ID即可。将它们放在标题(
)标记上通常更有意义。我知道它会重新加载,是指不跳转