Php 不使用输入标记传递表单值

Php 不使用输入标记传递表单值,php,forms,codeigniter,Php,Forms,Codeigniter,我做了两个视图,它们都有表格。第一个用于基本细节,然后添加一个带有数值的文本框 比如说: 姓氏: 成员: 提交按钮:继续 然后,我将它(作为$data=array('name'=>$\u POST['familyname'],'members'=>$\u POST['family\u members'])传递给控制器,然后传递给新视图 然后我在这里循环 for($counter=1;$counter<$members+1;$counter++) { echo "<input type

我做了两个视图,它们都有表格。第一个用于基本细节,然后添加一个带有数值的文本框

比如说: 姓氏: 成员:

提交按钮:继续

然后,我将它(作为
$data=array('name'=>$\u POST['familyname'],'members'=>$\u POST['family\u members'])传递给控制器,然后传递给新视图

然后我在这里循环

for($counter=1;$counter<$members+1;$counter++)
{
echo "<input type='text' name='membername$counter'/>";
}
for($counter=1;$counter这正是我们的目的

会话是根据唯一会话ID存储单个用户数据的简单方法。这可用于在页面请求之间保留状态信息。会话ID通常通过会话cookie发送到浏览器,该ID用于检索现有会话数据


你必须不断地传递所有的信息。有几种方法可以做到这一点

简单的方法是在第二个表单中创建一个
字段,该字段将第一个表单的所有信息序列化

比如:

$first_form_data = $_POST["..."];
echo '<input type="hidden" name="first_form_data"
  value="' . htmlspecialchars(json_encode($first_form_data)) . '" />';
$first\u form\u data=$\u POST[“…”;
回声';
我使用了
json\u encode
作为序列化程序。您也可以使用
serialize
或任何适用于此格式的序列化程序

要取消序列化数据,请分别使用
json\u decode
unserialize



一个更复杂、更复杂的解决方案是将数据存储在别处,并通过某种令牌引用它,然后只传递令牌。如果数据集太大,您不想一直传递它,这可能会很有用。

我认为会话应该只用于识别信息,而不是存储中间信息m数据。有什么特别的原因吗?我以为$session用于重要的数据,比如用户登录时,您使用session,这样只有登录的用户才能访问某些页面。我错了吗?它可以用于该页面和其他页面。它们不限于某些任务。@johncode当您在会话(或cookie)中存储中间数据时启动此表单的两个或多个实例时可能会遇到问题。一个实例将覆盖另一个实例。我在哪里初始化$first\u form\u data?第二个视图?或第二个视图的控制器?
$first\u form\u data
是我选择的一个变量名,用于指示您正在从第一个表单收集所有数据并将其注入second表单。这在实践中的效果取决于您如何将两个表单链接在一起。如果您不确定:是否有可以共享的代码?