我如何在新窗口中打开一个PHP页面并传递一些POST变量?我正在使用jQuery。
谢谢。
我建议在你的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>
然后通过jQuery提交它:
$('#new_window_parameter_1').val('value');
$('#invisible_form').submit();
以下是一个示例,演示如何通过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();
}
然后使用它:
submit_post_via_hidden_form(
'some link',
{
val1: val1,
val2: val2
}
);
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();