如何处理多个视图和控制器常用的表单?

时间:2012-09-17 18:45:54

标签: php codeigniter codeigniter-2

我有一个网站,其中大多数网页都显示了常见的表单。表单代码位于一个单独的文件中,并在每个视图中加载,如下所示:

<?php $this->load->view('includes/quote'); ?>

我这样做是为了不必在每个控制器和视图中复制代码。表单数据将用于创建电子邮件。表单显示正确,但我无法弄清楚如何处理输入数据。由于涉及多个控制器,我是否需要创建一个单独的控制器来处理数据?处理这种情况的最佳方法是什么?

3 个答案:

答案 0 :(得分:0)

使用我的控制器,它将扩展ci_controller。之后,每个控制器都会扩展my_controller。在my_controller中创建在所有其他控制器之间共享的方法。这样你就不必写它们了。它们将可用。类似地,在每个控制器上,您可以使用写入ectra代码提交表单,只需处理我的意思,即您将来自哪个控制器。为此目的,使用current_url()方法。这会有所帮助。

答案 1 :(得分:0)

Raheel所说的(具有处理表单提交功能的通用控制器),或创建一个在需要进行处理时包含的库,并且可以调用库方法。

答案 2 :(得分:0)

我会从每个控制器传递一个变量来识别当前正在使用的控制器。您可以使用它来更改表单'action属性,使其指向正确的控制器。

此外,您还可以使用该变量在表单中创建隐藏字段,因此,通过在$_POST中检查该变量,您就可以知道提交的表单。