Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 检索POST方法表单传递的值_Javascript_Html_Forms_Post_Ibm Midrange - Fatal编程技术网

Javascript 检索POST方法表单传递的值

Javascript 检索POST方法表单传递的值,javascript,html,forms,post,ibm-midrange,Javascript,Html,Forms,Post,Ibm Midrange,我在表单中遇到了一些关于POST方法的问题。我有一个带有POST方法的表单的a页,当我提交表单时,它会转到b页 现在的问题是,当我刷新它 弹出一个我不想来的警报。我正在使用HTML和Javascript 有没有办法处理此刷新 我可以想到的一种方法是在b页上动态创建一个隐藏表单,在字段中填充值,每次刷新时它都会提交该隐藏表单 请建议,让我知道,如果有一些其他整洁的工作。提前谢谢! 基本上,我在AS400平台上使用CGIDEV2。因此,当提交a页上的输入表单时,它调用abc.pgm,后者编写b页。C

我在表单中遇到了一些关于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>
a页
/形式
用户名:
b页
/顶
-----------------
-------------- 
/刷新格式
用户名:

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

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

如果您对submit按钮使用click事件处理程序,则只需防止单击时的默认操作

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

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

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

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

请参阅下面的和


函数提交()
{
var form=document.getElementById(“数据表单”);
var-xmlhttp;
if(window.XMLHttpRequest)
{//IE7+、Firefox、Chrome、Opera、Safari的代码
xmlhttp=新的XMLHttpRequest();
}
其他的
{//IE6、IE5的代码
xmlhttp=新的ActiveXObject(“Microsoft.xmlhttp”);
}
xmlhttp.onreadystatechange=函数()
{
if(xmlhttp.readyState==4&&xmlhttp.status==200)
{
form.innerHTML=xmlhttp.responseText;
   }
}
open(“POST”,“abc.pgm”,true);
setRequestHeader(“内容类型”,“应用程序/x-www-form-urlencoded”);
xmlhttp.send(“userName=“+form[“userName”].value+”&userPass=“+form[“userPass”].value”);
}
用户名:
用户通行证:

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

请参阅下面的和


函数提交()
{
var form=document.getElementById(“数据表单”);
var-xmlhttp;
if(window.XMLHttpRequest)
{//IE7+、Firefox、Chrome、Opera、Safari的代码
xmlhttp=新的XMLHttpRequest();
}
其他的
{//IE6、IE5的代码
xmlhttp=新的ActiveXObject(“Microsoft.xmlhttp”);
}
xmlhttp.onreadystatechange=函数()
{
if(xmlhttp.readyState==4&&xmlhttp.status==200)
{
form.innerHTML=xmlhttp.responseText;
   }
}
open(“POST”,“abc.pgm”,true);
setRequestHeader(“内容类型”,“应用程序/x-www-form-urlencoded”);
xmlhttp.send(“userName=“+form[“userName”].value+”&userPass=“+form[“userPass”].value”);
}
用户名:
用户通行证:

事实上,这些都是旧代码,因此无法使用AJAX。必须使用JavaScript执行此操作您应该遵循Ultranaut建议的Post/Redirect/Get模式,但无论如何,最好的解决方案是使用AJAX。事实上,这些都是旧代码,因此无法使用AJAX。必须使用JavaScript执行此操作您应该遵循Post/Redirect/Get模式,这是Ultranaut建议的,但无论如何,最好的解决方案是使用ajax。页面b上的url将是重定向中设置的任何url。好的,谢谢!请你给我发一些链接,里面有代码,以便实现。好吧,这里所有的“魔法”都发生在服务器上,所以这完全取决于你在服务器端使用的是什么。由于不熟悉CGIDEV2,我无法在这方面帮助您,尽管我确信它在Google的某个地方。b页上的url将是您在重定向中设置的任何内容。好的,谢谢!请你给我发一些链接,里面有代码,以便实现。好吧,这里所有的“魔法”都发生在服务器上,所以这完全取决于你在服务器端使用的是什么。由于对CGIDEV2不熟悉,我在这方面帮不了你,尽管我确信它在谷歌的某个地方。谢谢!所以现在如果abc.pgm指向b页,然后在b页按F5时,它将再次提交此表单?谢谢!那么现在如果abc.pgm指向b页,然后在b页按F5时,它会再次提交此表单吗?