我有一个控制器 auth ,有两种方法登录并注册。
它运作良好。
但是,我需要另一个名为 login_and_register 的函数,它将具有一个if条件,用于确定将执行哪个部分。如果登录部分(基本上来自登录方法的代码)或注册部分(来自注册方法的代码)。
if条件应该是检查单击了哪个提交按钮。
但问题出在这里。
我需要两个表单(登录和注册)的form_open保持这样:
<?php echo form_open('auth/login_and_register'); ?>
这不能改为例如auth / login_and_register_log或auth / login_and_register_reg或auth / login_and_register / log或auth / login_and_register / reg等。
登录和注册表单在同一视图中,按下提交后,auth控制器中的此函数login_and_register被执行。
我认为我可以根据提交值的名称制作if条件,因为对于登录表单,它被称为 submitlog ,对于注册表单,它被称为 submitreg
所以,也许是这样的:
if( isset($this->form_validation->set_value('submitlog')) ) {
//code for login part
}
elseif ( isset($this->form_validation->set_value('submitreg')) ) {
//code for registration part
}
else {
//code for redirect to homepage
}
但它不起作用。知道为什么吗?
答案 0 :(得分:2)
查询提交按钮名称是个好主意。这是一段有用的代码:
if ($this->input->post("submitlog") !== false) {
//code for login part
} elseif ($this->input->post("submitreg") !== false) {
//code for registration part
} else {
//code for redirect
}
答案 1 :(得分:1)
而不是那样,您可以使用相应表单名称的值在两个表单中保留一个隐藏字段。在控制器中,您可以检查此字段值并确定提交的表单。然后你可以重定向到所需的功能..