How to do "HTML FORM action=location.replace('nextp

How to do "HTML FORM action=location.replace('nextpage.html')"?

本文关键字:replace location nextp FORM do to quot HTML How action      更新时间:2023-12-31

标题实际上是实现我目标的一次失败尝试。具体来说,我想
1.从main.html转到页面(例如,转到page1.html)。
2.在第1页上以表格形式收集数据。
3.在提交时,转到page2.html(它使用PHP将数据保存到数据库并公布结果)
4.点击"确定",返回主菜单页面
看起来很合理,对吧?

上面的第4步是我的问题。

我尝试过的事情:
1.调用历史记录。返回第2页中的"确定"单击。
这将转到第1页而非主页
2.在第2页的"确定"上调用javascript location.href=main.html
这是有效的,并进入主界面,但点击主界面中的后退按钮会将用户带回第1页。(不好)
3.在action=和page1的onSubmit()中使用javascript history.replace()的许多变体。
这是有效的,但表单中的输入是而不是在查询字符串中传递到页面2
4.清晰的历史
出于安全考虑,这似乎是不可能的
5.以编程方式为第1页上的history.replace(来自表单输入)编写查询字符串。
这很有效,但非常费力,容易出错,而且非常不雅

如有任何建议,我们将不胜感激。

===========我的解决方案2016年8月4日=============
我将在下面为任何感兴趣的人发布我的最终解决方案
在page1.html:中

<script type="text/javascript">
function addarg(q,addend)
{
  qnew = q + addend;
  return( qnew );
}
function Next()
{
  // GET INPUT VALUES FROM FORM
  frm = document.forms["MainForm"];
  first   = frm.first.value;
  last    = frm.last.value;
  phone   = frm.phone.value;
  // COMPOSE QUERY
  query = "processForm.php";
  query = addarg( query, '?first='+first );
  query = addarg( query, '&last='+last   );
  query = addarg( query, '&phone='+phone );
  location.replace( query ); // chain to processing page
}
</script>
<form action="javascript:Next()" name="MainForm" method=GET>
  ...
</form>

当history.back()从processForm.php发出时,它会根据需要返回到主菜单。

实现这一点似乎更简单的方法是在page2.html.上放置一个简单的<a href=main.html>Ok</a>

然后在main.html上关联一个标志(可能是cookie),该标志"指示"page1.html清除其表单元素,但通过"后退"按钮(例如,通过刷新meta,或通过加载page1.html#randomnum,其中randomnum是一个您可以实时找到的值,以迫使浏览器理解这不是"旧的"page1.html而是"新的"page1.html的值,帮助浏览器不要从缓存而是从web获取)。

原则是:如果page1.html被"back"调用,则它必须是一个"clear"page1.html不显示用户最终输入的任何数据。