1

即使在多次访问文档后,我在理解控制器的使用方面也存在差距。我有以下内容:

class Membership extends CI_Controller 
{


    /*Load the login view first assuming user is member*/
    public function index()
    {
        $this->load->view('login');
    }

    /*if not member, load register view*/
    public function register()
    {
        $this->load->view('register');
    }

    /*view to recover user credentials*/
    public function recover()
    {
        $this->load->view('recover');
    }

    public function enroll_user()
    {
        /*Retrieve post parameters*/
        $fullname = $this->input->post('fullname');
        $email = $this->input->post('email');
        $mobile = $this->input->post('mobile');
        $home = $this->input->post('home');
        $username = $this->input->post('username');
        $password = $this->input->post('password');
        $confirmPassword = $this->input->post('cpassword');
    }

}

现在示例当用户单击主页上的立即注册链接时, register() 函数应该加载视图。但是在他填写完表格并提交之后,我应该提交到哪个函数呢?这是否意味着我必须为每个功能创建两个函数,一个用于加载视图(register.php),第二个用于处理该函数的操作(enroll_user)?

4

2 回答 2

3

你可以一口气做到这一点

public function register()
{
    $post = $this->input->post();
    if($post){
        // do other stuff here
        // you can load view here too if validation fails
    }else{
        $this->load->view('register');
    }
}

在你的表格中使用这个

echo form_open(current_url());  
于 2013-03-11T06:46:10.983 回答
1

在您的 register.php 中,将表单的操作放到 memebership/enroll_user 中,这样当用户提交注册表单时,该操作将提交到enroll_user 函数,它会处理注册等。

您需要两个功能,一个用于显示注册表单,另一个用于处理提交的数据。您可以使用一个控制器来执行此操作,但最好在两个控制器中执行此操作,因为稍后您可以更轻松地找出哪个功能正在做什么。

于 2013-03-11T06:37:01.370 回答