11

我需要让一个表单同时发送 POST 和 GET 请求(由于 IE 和 iframe 中的一些错误),你怎么能这样做?

发送的数据不是超级安全的,所以它是否可以通过 GET 设置并不重要,只需要确保它是双向设置的。

谢谢您的帮助!

4

5 回答 5

31

简单:只需在表单 URL 中指定 GET 数据。

<form method="POST" action="form.php?a=1&b=2&c=3">

但是,请非常仔细地检查数据在接收脚本中的使用方式。不要使用- 而是根据您的确切需求以及您需要它们的优先顺序进行解析$_REQUEST$_GET$_POST

于 2011-01-18T17:05:36.430 回答
11

让表单做一个普通的 POST 并使用 JavaScript 来复制查询字符串中的值:

HTML:

<form id="myform" method="post" action="..." onsubmit="process()">
  ...
</form>

JavaScript:

function process() {
  var form = document.getElementById('myform');
  var elements = form.elements;
  var values = [];

  for (var i = 0; i < elements.length; i++)
    values.push(encodeURIComponent(elements[i].name) + '=' + encodeURIComponent(elements[i].value));

  form.action += '?' + values.join('&');
}
于 2011-01-18T17:10:11.833 回答
4

不确定您要解决什么错误,但您可以使用jQuery轻松修改表单的操作以包含发布的值:

脚本:

function setAction() {
    $("#myform").attr("action", "/path/to/script/?" + $("#myform").serialize());
}

html:

<form id="myform" action="/path/to/script/" method="post" onsubmit="setAction()">
于 2011-01-18T17:13:16.607 回答
2

表单应该设置 post 在 url 中获取

<form method="post" action="http://www.yourpage.php?firstparam=1&sec=2">
.
.
</form>
于 2011-01-18T17:05:50.860 回答
0

如果您需要动态创建的 URL。您可以使用此 HTML 示例。GET 字段采用单独的形式。在提交 POST 表单之前,URL 是从 GET 表单生成的。

<form id="formGET">
    email: <input name="email" value="email@domain.nl"/>
</form>
<form id="formPOST" method="post" onsubmit="this.action='/api/Account?'+Array.prototype.slice.call(formGET.elements).map(function(val){return val.name + '=' + val.value}).join('&');">
    mobile: <input name="mobile" value="9999999999" /><br />
    <button>POST</button>
</form>
于 2019-11-15T11:48:37.880 回答