【问题标题】:Codeigniter - Pass array from controller, to view, and then to another controllerCodeigniter - 将数组从控制器传递到视图,然后再传递到另一个控制器
【发布时间】:2014-03-24 23:12:49
【问题描述】:

我有一个控制器来处理向数据库添加记录。有时这些记录需要输入几个密码才能“签署记录”。因此,当提交表单时,它会被传递给控制器​​中名为“getSignatures”的函数。这将加载一个包含所需密码输入的视图。然后用户将输入他们的密码来“签署文件”。然后将其传递给控制器​​中名为“checkSignatures”的函数,该函数将调用模型中的函数来检查密码。

但是,我仍然需要传递或保存表单提交时的所有数据。

我尝试使用全局变量来保存表单数据,但是当调用 checkSignatures 函数时,它是通过新控制器调用的。我还尝试将表单数据传递给视图,将其保存在隐藏输入中,然后通过 post 将其传回,但您无法将数组保存在隐藏输入中。

任何想法都会很棒,很抱歉这个冗长的问题。

【问题讨论】:

  • 为什么不使用 AJAX 来检查这些签名并在验证所有数据后进行实际发布?

标签: php codeigniter view controller


【解决方案1】:

尝试使用here 中描述的会话。特别是你应该看看 CodeIgniter 的 flashdata。

在整个用户浏览会话期间,会话将存储在服务器上。这将让您再次访问数据。 Flashdata 在下一页加载后会被删除,因此它们不会长期存在。

【讨论】:

  • 在 session/flashdata 中保存数组是否可行?我的理解是它们被用于更简单的变量?在这种情况下,它是完美的,因为它只是一个小数组,但供将来参考。谢谢!
  • 我不确定 CodeIgniter 是否会自动执行此操作,但您可以使用 PHP 的 serialize()。 php.net/manual/en/function.serialize.php
  • 啊,我使用序列化将数组存储在数据库中,所以是的,这可以。
猜你喜欢
  • 2017-09-02
  • 1970-01-01
  • 2016-04-16
  • 2014-02-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多