【发布时间】:2012-10-01 19:07:46
【问题描述】:
我有两页:
- Graph.php
- List.php
图表页面完全按照它的名字命名,图表数据。如果没有发布/获取数据,它会显示给定表中的所有数据。
列表页面是一个巨大的表格,其中加载了大约 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>
我编写了小 sn-p 来获取可见行的 ID 并将它们加载到数组中,将其序列化并将其泵入变量以将其发布到图表中。
我应该使用 GET 吗?我应该以不同的方式来做这件事吗?
我希望在与图表不同的页面上进行过滤和排序的原因是因为用户有很多列和选项来过滤和排序。
【问题讨论】:
-
不要使用 GET。大多数浏览器通常将其限制为最大长度,如果您的序列化数据被浏览器(和/或网络服务器)静默截断,您将一无所获。使用邮政。它(基本上)长度不受限制。
-
我不会发布从第一页到第二页的所有数据,我会发布一些方法来识别数据并在第 2 页重新选择以进行显示。
-
就像@MarcB 所说,不要使用GET。您可以制作 ajax 图表,在您的任何操作时刷新。
-
@glavić Ajax 图形是否仍然需要向其传递数据 - 所以使用带有长序列化数组的 post 是安全的吗?
-
它是安全的,为什么不呢?我会像@Dagon 告诉你的那样做。
标签: php arrays post serialization