在表单中发送POST和GET

时间:2011-01-18 17:04:12

标签: php html http-post http-get

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

发送的数据不是特别安全,所以如果可以通过GET设置它并不重要,只需要确保它设置为双向。

感谢您的帮助!

5 个答案:

答案 0 :(得分:30)

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

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

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

答案 1 :(得分:9)

使表单执行常规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('&');
}

答案 2 :(得分:4)

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

脚本:

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

HTML:

<form id="myform" action="/path/to/script/" method="post" onsubmit="setAction()">

答案 3 :(得分:2)

表单应设置post in the url

<form method="post" action="http://www.yourpage.php?firstparam=1&sec=2">
.
.
</form>

答案 4 :(得分: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>