使用Jquery将URL变量传递给PHPExcel

时间:2011-10-13 12:25:29

标签: php jquery phpexcel

我正在尝试将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。

2 个答案:

答案 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();
  });

应正确提交表格。您正在使用参数设置表单的操作。不需要序列化我认为的任何东西。