0

我有一个 codeigniter MVC 设置,其中一个表单存在于一个页面上。

每次用户单击提交按钮时,同一个控制器在同一个 url 下加载下一块表单,http://domain.com/form并使用相同的视图但具有不同的数据(本例中的数据是表单元素)。

客观的:

1) 确保加载的下一个部分是正确的进行部分。请记住,我在相同的 URL 下使用相同的控制器,并且使用相同的视图,只是每次需要填充新的初始化数据时使用不同的初始化数据。

2) 限制用户跳转到不直接继续他当前所在的表单块

实现这一目标的最佳方法是什么?我想使用会话,我不想使用隐藏的输入元素。

4

1 回答 1

0

也许是这样的:

// load first form data here, then: 
$data = '...';

// this is intentionally above the first form
if ($this->session->userdata('step_1') == 'done' AND is post action) {
   if(the second form is validated, then) {
       // unset the session here
       $this->session->unset_userdata('step_1');
   }
}

if ($this->session->userdata('step_1')!=='done' AND is post action ) {
    if(the first form validates here, then) {
       $this->session->set_userdata('step_1', 'done');
       // prepare the second form data here, that will override the one above:
       $data = '...';
    }
}

请注意,我有一段时间没有使用 CI,所以我真的不记得那里的所有对象名称,但你应该明白这一点。

于 2013-05-08T23:13:27.700 回答