0

我需要能够存储表单中的 $_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_merge,array_append等,但这些似乎都不起作用;即使我将 POST 数据带入另一个数组,它也会不断覆盖 POST 数据中的内容。

我知道最简单的方法是在其中添加一些 jQuery,但这是针对 PHP 类(我们还不允许使用 SQL),所以我想尝试仅使用 PHP 来解决这个问题。

任何帮助都是极好的。

谢谢,

切尔西

4

2 回答 2

2

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

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

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

于 2013-02-06T00:12:22.280 回答
0

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

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

请试一试。

于 2013-02-06T00:14:57.837 回答