Php Codeigniter-处理所有页面只有一个控制器的表单

Php Codeigniter-处理所有页面只有一个控制器的表单,php,codeigniter,Php,Codeigniter,我开始在一个工作项目中使用Codeigniter,我仍然掌握着窍门 围绕Codeigniter教程,我开始构建只有一个控制器来处理视图的网站,但现在我无法在该控制器上处理表单提交。我在这里发疯了…:P 这是控制器的唯一函数(pages.php) 我有处理准备好的表格的功能 public function index() { $this->form_validation->set_rules('nome', 'Username', 'required|min_l

我开始在一个工作项目中使用Codeigniter,我仍然掌握着窍门

围绕Codeigniter教程,我开始构建只有一个控制器来处理视图的网站,但现在我无法在该控制器上处理表单提交。我在这里发疯了…:P

这是控制器的唯一函数(pages.php)

我有处理准备好的表格的功能

    public function index()
    {
    $this->form_validation->set_rules('nome', 'Username', 'required|min_length[3]|max_length[25]|');
    $this->form_validation->set_rules('telemovel', 'Telephone', 'numeric|exact_length[9]');
    $this->form_validation->set_rules('email', 'Email', 'required|valid_email');
    $this->form_validation->set_rules('mensagem', 'MessageBody', 'required|min_length[10]');

    if ($this->form_validation->run() == FALSE)
    {

        // handle ACTIVE class
        $current_page = uri_string();

        $this->Mp->isactiveset($this->session->userdata('active'),$current_page);
        $this->Mp->newactive($this->session->userdata('active'),$current_page);

        // get ap types
        $aptype = $this->Mp->getaptype();

        // testing database query and passing variables
        $passar = $this->Mp->testedb();

        // passing data to view
        $data['estado'] = $passar; // Testing db connection
        $data['aptypes'] = $aptype; // Ap types


        $this->load->view('templates/header', $data);
        $this->load->view('pages/home', $data);
        $this->load->view('templates/footer', $data);
    }
    else
    {   
        $this->load->view('templates/header', $data);
        $this->load->view('pages/submit', $data);
        $this->load->view('templates/footer', $data);
    }
}
这就是route.php的样子(在第一个答案之后,我现在知道这是相关的)

在视图中,当我执行form_open('submit',$attributes)时,除了视图之外,它不会进入控制器上的任何函数。显然,我已经将表单处理函数放在pages.php上,多次重命名它,并尝试了不同的表单提交页面(form_open(“我尝试过的页面,$attributes))。我如何让它转到特定的函数来处理表单提交

form_open('submit', $attributes) 
一定是

form_open('/path_to_my_page', $attributes) 
如果我理解正确的话

form_open('/view/page', $attributes) 

我已经弄明白了!谢谢Svetlio为我指出了正确的方向。我是这样做的:

1)在表单初始化中正确设置路径:

echo form_open('contactos/submit', $attributes); 
2)转到路由配置(application/config/routes.php)并将路由异常添加到此文件

$route['contactos/submit'] = "pages/submit";
这样做的目的是,当程序被要求输入“contactos/submit”路径时,它会指向pages.php控制器中的函数submit(这就是我要找的…)

3) 在控制器中定义函数submit,以正确处理表单的提交

public function submit()
{
/* handle the form code */
    }

谢谢你的回复,但它不能满足我的要求。我需要pages.php控制器中的一个函数来处理提交。这不是在其中输入任何函数。这只是转到submit.php视图,因此它只在我的控制器上使用“public function view”功能。您是否为该提交功能创建了路由??。。。不我想。我是新来的,所以对我赤裸裸。我怎么能做到呢?我做到了。我只是等着打发时间,然后才允许我回答自己的问题。谢谢@Svetlio为我指明了正确的方向
$route['contactos/submit'] = "pages/submit";
public function submit()
{
/* handle the form code */
    }