检索POST方法表单传递的值

时间:2012-09-22 14:12:48

标签: javascript html forms post ibm-midrange

我在表单中遇到了 POST 方法的问题。我有一个带有 POST 方法的表单的页面A,当我提交表单时,它转到第b页。

现在的问题是,当我刷新它时 弹出一个我不想来的警报。我正在使用HTML和Javascript。

有没有办法处理这个刷新?

我能想到的一种方法是动态地在页面b上创建一个隐藏的表单,其中的值填充在字段中,每次刷新它只是提交隐藏的表单。

如果有其他整洁的工作,请建议并告诉我。提前致谢! 基本上我在AS400平台上使用CGIDEV2。因此,当提交页面a上的输入表单时,它会调用abc.pgm来写入页面b。 Cgidev2分段编写html。它会写/ TOP部分然后/ REFRESHFORM。这些值将填入abc.pgm。

PAGE a
    /FORM
        <form name="input" action="abc.pgm" method="POST">
    Username: <input type="text" name="user"><input type="submit" value="Submit"></form>
Page b 
    /TOP
    -----------------
    -------------- 
    /REFRESHFORM
    <form name="refreshinput" action="abc.pgm" method="POST">
    Username: <input type="text" name="user"><input type="submit" value="Submit"></form>

3 个答案:

答案 0 :(得分:1)

您是否试图避免“确认表格重新提交”提醒?通常的方法是使用POST/Redirect/GET模式:页面A将表单发布到服务器,服务器处理数据,然后向用户发出3xx重定向,触发页面B的GET请求。因此,后续重新加载页面B只是通常的练习,即没有警报消息。

答案 1 :(得分:0)

如果对提交按钮使用单击事件处理程序,则只需要阻止单击时的默认操作。

$('#Submit').click(function(e){
  e.preventDefault();
  // submit the form using ajax
  // on success go to the page B
  ...
}

答案 2 :(得分:0)

没有简单的方法可以避免此问题,但您可以尝试使用XMLHttpRequest对象而不是表单。您需要编写一些javascript代码,但您的服务器代码将保持不变。

请参阅以下documentationexample

<!DOCTYPE html>
<html>
<head>
<script>
function Submit()
{
var form = document.getElementById("data-form");
var xmlhttp;
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    form.innerHTML=xmlhttp.responseText;
    }
  }
xmlhttp.open("POST","abc.pgm",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("userName=" + form["userName"].value + "&userPass=" + form["userPass"].value);
}
</script>
</head>
<body>

<form id="data-form">
    Username: <input type="text" name="userName">
    Userpass: <input type="text" name="userPass">
    <input id="submit" onclick="Submit()" type="button" value="Submit">
</form>

</body>
</html>