我正在尝试将URL变量传递给我的PHPExcel PHP脚本,以便可以使用$_GET数组在脚本中提取它们.
当按下表单(form1)按钮时,将调用PHPExcel脚本,并且变量基于第二个表单(filters_form).
{filters_form是服务于不同脚本的常规“过滤器”形式,例如过滤JqGrid.意思是说,它与form1分离是有原因的.在form1上,我放置了一个调用PHPExcel脚本的按钮,该按钮还需要使用filters_form提供的相同过滤器}
因此,我试图使用Jquery这样调用PHPExcel脚本:
$(document).ready(function() {
$('#form1').click(function() {
var filters_form_serialized = $('#filters_form').serialize();
var URL = 'PHPExcel_script.php?' + filters_form_serialized;
$('#form1').attr('action', URL);
$('#form1').submit();
});
});
form1是:
<form id="form1" action="" method="get" target="_blank">
<button id="form_button" type="button"></button>
</form>
filter_form是:
<form id="filters_form">
<input name="input1" type="checkbox" value="0" checked="checked" />
<input name="input2" type="checkbox" value="1" checked="checked" />
</form>
确实调用了PHPExcel脚本,但是脚本无法识别/获取$_GET数组中的任何变量,例如:
if(isset($_GET['input1']))
{echo "TRUE";}
else
{echo "FALSE";}
返回FALSE.
有什么想法吗?
谢谢!
附言我已经使用警报检查了URL的编码是否正确;此外,使用其他脚本可以正确识别具有相同变量的完全相同的url.
解决方法:
您可能尝试实现的目标似乎可行,但事实并非如此:
您的浏览器会删除来自action属性的查询参数.我认为那不是obvious.
幸运的是,您不需要.
而是只需设置一个新位置:
$(document).ready(function() {
$('#form1').click(function() {
var filters_form_serialized = $('#filters_form').serialize();
var URL = 'PHPExcel_script.php?' + filters_form_serialized;
window.location.href = 'http://your.host/and/path/to/' + URL;
});
});