php - 通过帖子传递数组的正确方法?

标签 php arrays post serialization

我有两个页面:

  • Graph.php
  • 列表.php

Graph 页面的功能与它的名称完全相同,即图表数据。如果没有发布/获取数据,它会显示给定表中的所有数据。

列表页面是一个巨大的表格,可加载大约 500-600 行数据。在表格中,您可以使用 JavaScript 对行进行排序和过滤。该表格大约有 14 列宽。

在列表页面中对行进行排序后,您可以按“图表”按钮,该按钮将获取可见行并将它们绘制在图表页面上。

我遇到的问题是将这些 ID 传递到图形页面。我开始于:

<?php
if(isset($_POST['data']))
{
    echo "FOUND SERIALIZED ARRAY<br>";
    $afterSerializeArray = unserialize($_POST['data']);
    print_r($afterSerializeArray);
}
    $beforeSerializeArray = array();
    $beforeSerializeArray[] = 1;
    $beforeSerializeArray[] = 2;
    $beforeSerializeArray[] = 3;
    $serializeArray = serialize($beforeSerializeArray);
?>
<form action="" method="post">
<input type="hidden" name="data" value="<?php echo $serializeArray; ?>"/>
<input type="submit" value="Serialize"/>
</form>

我编写了一个小片段来获取可见行的 ID 并将它们加载到一个数组中,将其序列化并将其泵入一个变量以将其发布到图表中。

我应该使用 GET 吗?我应该换一种方式吗?

我之所以希望在与图表不同的页面上进行筛选和排序,是因为用户有很多列和选项可供筛选和排序。

最佳答案

与其尝试通过帖子发送数组,不如将这些 ID 与任何特殊字符(例如“,”)连接起来。通过这种方式,您将在 $_POST['data'] 中将所有 ID 作为逗号分隔值获取。现在您可以使用 PHP explode 函数获取数组中的所有值,并根据需要使用它们。

此代码示例可能对您有所帮助

<?php
if(isset($_POST['data']))
{
    echo "FOUND Ids<br>";
    $IdArray = explode(',',$_POST['data']);
    print_r($IdArray );
}
    $idarray = array('1','2','3');
    $ids = implode(',',$idarray);
    ?>
<form action="" method="post">
<input type="hidden" name="data" value="<?php echo $ids;?>"/>
<input type="submit" value="Serialize"/>
</form>

关于php - 通过帖子传递数组的正确方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12679435/

相关文章:

php - 我们可以在Codeigniter中定义常量数组吗?

php - fatal error : Allowed memory size of 67108864 bytes exhausted (tried to allocate 122880 bytes)

javascript - 将具有相同键的嵌套对象合并到 JavaScript 中的单个对象中

python - Numpy 数组发生意外变化

java - 在控制台上打印数组引用变量

php - 我怎样才能使这个动态在 '2014-07-01 00:00:00' 和 '2014-07-31 23:59:59' 之间”;

javascript - 您可以在 SQL SELECT 查询中使用从 AJAX 发布的数据吗

php - 自动交付产品代码?

java - Spring Post : HTTP/1. 1 405 不允许的方法

android - 来自服务器的 HTML 响应