【问题标题】:Add to A $_POST Array through Multiple Refreshes通过多次刷新添加到 $_POST 数组
【发布时间】:2013-02-06 00:06:38
【问题描述】:

我需要能够存储表单中的 $_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 来解决这个问题.

任何帮助都会很棒。

谢谢,

切尔西

【问题讨论】:

    标签: php


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

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

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

      请试一试。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-10-11
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多