我需要让表单发送POST和GET请求(由于IE和iframe中的一些错误),你怎么能这样做?
发送的数据不是特别安全,所以如果可以通过GET设置它并不重要,只需要确保它设置为双向。
感谢您的帮助!
答案 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>