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

时间:2012-10-01 19:07:47

标签: php arrays post serialization

我有两页:

  • Graph.php
  • list.php的

“图形”页面完全按照其命名,图形数据。如果没有发布/获取数据,则显示给定表中的所有数据。

List页面是一个巨大的表,可以加载大约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吗?我应该以不同的方式做这件事吗?

我想要在与图表不同的页面上进行过滤和排序的原因是因为用户有很多列和选项可以过滤和排序。

1 个答案:

答案 0 :(得分:2)

不是试图通过post发送数组,而是应该将这些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>