我正在尝试将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
有什么想法吗?
谢谢!
P.S。我已经检查过URL正确编码的警报;此外,使用其他脚本可以正确识别具有相同变量的完全相同的URL。
答案 0 :(得分:2)
您尝试实现的目标似乎有可能实现,但事实并非如此:
您的浏览器会删除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;
});
});
答案 1 :(得分:1)
我不明白你为什么不这样做:
<form id="the_form" action="PHPExcel_script.php" method="get" target="_blank">
<input name="input1" type="checkbox" value="0" checked="checked" />
<input name="input2" type="checkbox" value="1" checked="checked" />
<button id="form_button" type="button"></button>
</form>
$('#form_button').click(function() {
$(this).submit();
});
应正确提交表格。您正在使用参数设置表单的操作。不需要序列化我认为的任何东西。