我需要制作一个同时发送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()">
表单应设置为在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 protected]"/>
</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>