Javascript jquery 在选项卡中打开页面并传递一些 POST 值
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/7024040/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
jquery open page in a tab and pass some POST values
提问by michele
how can I open in a new window a php page and pass in some POST variable? I am using jquery.
如何在新窗口中打开一个 php 页面并传入一些 POST 变量?我正在使用 jquery。
Thank you.
谢谢你。
回答by M. Cypher
I would suggest creating an invisible form in your HTML like this:
我建议在你的 HTML 中创建一个不可见的表单,如下所示:
<form id="invisible_form" action="new_window.php" method="post" target="_blank">
<input id="new_window_parameter_1" name="parameter" type="hidden" value="default">
</form>
..and then submitting it via jQuery:
..然后通过jQuery提交它:
$('#new_window_parameter_1').val('value');
$('#invisible_form').submit();
回答by Andron
Here is a sample how to submit a hidden form via POST:
以下是如何通过 POST 提交隐藏表单的示例:
function submit_post_via_hidden_form(url, params) {
var f = $("<form target='_blank' method='POST' style='display:none;'></form>").attr({
action: url
}).appendTo(document.body);
for (var i in params) {
if (params.hasOwnProperty(i)) {
$('<input type="hidden" />').attr({
name: i,
value: params[i]
}).appendTo(f);
}
}
f.submit();
f.remove();
}
And to use it:
并使用它:
submit_post_via_hidden_form(
'some link',
{
val1: val1,
val2: val2
}
);
回答by grupowebex
Lite version with simple array compatibility:
具有简单数组兼容性的精简版:
var url = 'myurl.html';
var params = {
inputId: 'somevalue',
itemArray: ['as','a','example']
};
var f = $("<form target='_blank' method='POST' style='display:none;'></form>").attr({
action: url
}).appendTo(document.body);
for (var i in params) {
if (params.hasOwnProperty(i)) {
if($.isArray(params[i])) {
for (var j in params[i]) {
$('<input type="hidden" />').attr({
name: i + '[]',
value: params[i][j]
}).appendTo(f);
}
} else {
$('<input type="hidden" />').attr({
name: i,
value: params[i]
}).appendTo(f);
}
}
}
f.submit();
f.remove();