簡體   English   中英

檢索通過POST方法表單傳遞的值

[英]Retrieving values passed by POST method form

我在表單中遇到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>

您是否在嘗試避免“確認表單重新提交”警報? 這樣做的通常方法是使用POST / Redirect / GET模式:A頁會將表單發布到服務器,服務器處理數據,然后向用戶發出3xx重定向,從而觸發B頁的GET請求。因此,隨后對頁面B的重新加載將只是常規練習,即沒有警報消息。

如果對提交按鈕使用click事件處理程序,則只需要阻止默認的click動作即可。

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

沒有簡單的方法可以避免此問題,但是您可以嘗試使用XMLHttpRequest對象而不是表單。 您將需要編寫一些javascript代碼,但是您的服務器代碼將保持不變。

請參閱以下文檔示例

<!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>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM