通过多次刷新添加到$ _POST数组

时间:2013-02-06 00:06:38

标签: php

我需要能够从表单中存储$ _POST数据(我正在使用SESSION变量),我需要将数据添加到$ _POST数组而不覆盖以前的数据。

这是关于SESSION变量的原始主题:Store Array Variables Through Page Refresh with PHP

以下是我需要做的一个例子:

页面上有一个表格,您可以设置墙的宽度和高度来计算绘制墙壁需要多少油漆/劳动力。输入第一个墙尺寸后,用户可以单击标有“添加墙”的提交按钮,在其订单中添加另一个墙。

在第一次输入墙之后,POST数据将返回如下内容:

Array ( [wallW] => Array ( [0] => 9 ) [wallL] => Array ( [0] => 10 ) ) 

输入第二个墙后,它看起来像这样:

Array ( [wallW] => Array ( [0] => 9 [1] => 20 ) [wallL] => Array ( [0] => 10 [1] => 15 ) ) 

这将持续到用户输入所有墙壁为止。

我尝试过array_mergearray_append等等,但这些似乎都没有起作用;它会不断覆盖POST数据,即使我将POST数据带入另一个数组。

我知道简单的事情就是在那里抛出一些jQuery,但这是针对PHP类的(我们还不允许使用SQL)所以我想尝试用PHP来解决这个问题。

任何帮助都会很棒。

谢谢,

切尔西

2 个答案:

答案 0 :(得分:2)

我不知道为什么会被投票,我发现它很粗鲁,因为你显然是新手。但是您只需要在后续请求中重新发布您的帖子。因此,您需要将现有的post对象序列化为隐藏字段。你缺少的是php / http是无状态的。因此请求之间没有任何保留,另一个简单的解决方案可能是将这些POST变量移动到SESSION变量。

我看到您已将POST数据添加到会话中,但没有理由将其添加回发布,只需继续附加到会话,然后从那里使用它。向_POST添加内容不会强制它们下次发布如果您正在尝试todo,请参阅有关将它们序列化为隐藏字段的部分。

祝你好运,欢迎来到网络编程。

答案 1 :(得分:0)

你构建数组的方式对我来说似乎有些奇怪。相反,我会做类似的事情。

if(!empty($_POST))
{
    $wall = array('w' => $_POST['w'], 'h' => $_POST['h']);
    $_SESSION['walls'][] = $wall;
}

请试一试。