我需要让一个表单同时发送 POST 和 GET 请求(由于 IE 和 iframe 中的一些错误),你怎么能这样做?
发送的数据不是超级安全的,所以它是否可以通过 GET 设置并不重要,只需要确保它是双向设置的。
谢谢您的帮助!
简单:只需在表单 URL 中指定 GET 数据。
<form method="POST" action="form.php?a=1&b=2&c=3">
但是,请非常仔细地检查数据在接收脚本中的使用方式。不要使用- 而是根据您的确切需求以及您需要它们的优先顺序进行解析$_REQUEST
。$_GET
$_POST
让表单做一个普通的 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('&');
}
不确定您要解决什么错误,但您可以使用jQuery轻松修改表单的操作以包含发布的值:
脚本:
function setAction() {
$("#myform").attr("action", "/path/to/script/?" + $("#myform").serialize());
}
html:
<form id="myform" action="/path/to/script/" method="post" onsubmit="setAction()">
表单应该设置 post 在 url 中获取
<form method="post" action="http://www.yourpage.php?firstparam=1&sec=2">
.
.
</form>
如果您需要动态创建的 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>