【发布时间】:2022-01-27 04:21:30
【问题描述】:
我有一个从 SQL DB 中提取的记录表。 管理员可以对其进行过滤,例如,仅显示今年的订单,或仅购买订单等。
我需要能够仅将过滤后的记录导出到 Excel 文件中。 我有一个显示记录的 Main.php,以及一个导出和下载文件的 export.php。
我这样做的想法是过滤任何内容,我获取所有 OrderID,存储在一个数组中,然后使用 POST 方法将它们传递给 export.php 以打印出来。
我的问题在于传递值。我不断得到一个空数组!
我不知道它是否与顺序有关。因为我的 EXPORT 按钮位于记录之上,所以我的数组在技术上没有价值?但是出于演示目的,我需要将 EXPORT 按钮放在记录上方。
Main.php
<?php
$filtered_OID = array();
?>
<form method="post" action="export.php">
<input type="hidden" name="exportf" value="<?php echo serialize($filtered_OID); ?>" />
<input type="submit" class="send" value="Export Filtered" />
</form>
<?php
...very long php code to query sql and show records...
array_push($filtered_OID, $row2[orderid]);
...very long php code to query sql and show records...
?>
export.php
if(isset($_POST["exportf"]))
{
//echo unserialize($_POST["exportf"]);
print_r($_POST["exportf"]);
//print_r(unserialize($_POST["exportf"]));
//var_dump($_POST["exportf"]);
}
export.php 的结果
a:0:{}
谢谢
【问题讨论】:
-
$filtered_OID 在您的代码中为空。只需重新排列即可。
-
正如我所提到的,出于演示目的,我需要将导出按钮放在表格上方。否则重新排列会将 Button 放在表格的最底部...
-
在计算完所有内容之前不要回显任何内容。将所有待处理的输出存储在字符串中。然后只需按照你想要的顺序输出字符串,包括你需要的所有计算值