我有一个codeigniter MVC设置,其中一个表单存在于一个页面上。
每次用户点击提交按钮时,同一个控制器都会在同一个网址http://domain.com/form
下加载表单的下一部分,并使用相同的视图,但使用不同的数据(本例中的数据是表单元素) )。
目的:
1)确保下一件装的是正确的装备件。 请记住,我在相同的URL下使用相同的控制器,并且我使用相同的视图,每次需要填充新的初始化数据时使用不同的初始化数据。
2)限制用户跳转到不直接进行当前正在进行的表单
实现这一目标的最佳方法是什么?我想使用会话,我不想使用隐藏的输入元素。
答案 0 :(得分: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,所以我真的不记得那里的所有对象名称,但你应该明白这一点。