【问题标题】:PHP POST - no value in array when passing from php file to anotherPHP POST - 从php文件传递到另一个时数组中没有值
【发布时间】: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 放在表格的最底部...
  • 在计算完所有内容之前不要回显任何内容。将所有待处理的输出存储在字符串中。然后只需按照你想要的顺序输出字符串,包括你需要的所有计算值

标签: php sql arrays post


【解决方案1】:
<?php
$filtered_OID = array();
?>

<?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...
    ?>

<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>

【讨论】:

  • 对不起,不是我要找的解决方案。这样做会将按钮放在表格下方,这不是我想要的。
  • 为什么?使用 jquery 在 div 中填充结果。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-10
  • 2016-10-30
  • 1970-01-01
  • 2016-10-27
  • 1970-01-01
  • 2014-12-01
相关资源
最近更新 更多