En M .odel V .iew C configuraciones .ontroller como CodeIgniter Las vistas son elementos de la interfaz de usuario. No deberían estar analizando los resultados.
Si no me equivoco, lo que está buscando que hacer es pasar datos desde www.yoursite.com/index.php/form
a www.yoursite.com/index.php/search
en PHP no estructurada es posible que tenga un form.html
con una acción de forma de search.php
. Un usuario navegaría al yoursite.com/form.html
, que llamaría al yoursite.com/search.php
, que podría redireccionar al yoursite.com/results.php
.
En CodeIgniter (y, por lo que yo entiendo, en cualquier sistema de MVC, independientemente del idioma) Controller su Form
, llama a una función que carga el form.html
Viewen sí mismo y luego lo ejecuta. El View genera el código (generalmente HTML, pero no necesariamente) con el que el usuario interactúa. Cuando el usuario realiza una solicitud que la Vista no puede procesar (solicitudes de más datos u otra página) devuelve esa solicitud al Controlador, que carga más datos u otra Vista.
En otras palabras, la vista determina cómo se mostrarán los datos. El controlador asigna solicitudes a Vistas.
Se vuelve un poco más complicado cuando quiere que los datos complejos y/o cambiantes se muestren en una vista. Para mantener el separation of concerns que MVC requiere CodeIgniter también le proporciona Models.
Los modelos son responsables de la parte más difícil de cualquier aplicación web: administrar el flujo de datos. Contienen métodos para leer datos, escribir datos y, lo que es más importante, métodos para garantizar la integridad de los datos. En otras palabras, los modelos deben:
- Asegúrese de que los datos estén en el formato correcto.
- Asegúrese de que los datos no contengan nada (malicioso o de otro tipo) que pueda dañar el entorno para el que está destinado.
- Poseer métodos para C .reating, R .eading, U .pdating, y D datos .eleting dentro de las limitaciones anteriores.
Akelos tiene un buen gráfico que pone a cabo los componentes de MVC:
Request - Response http://svn.akelos.org/trunk/docs/images/akelos_mvc.png
Dicho esto, el más simple (léase "más fácil", no "más ampliable") manera de lograr lo que usted querer hacer es:
function Form()
{
parent::Controller();
}
function index()
{
$this->load->view('form');
}
function search()
{
$term = $this->input->post('search');
/*
In order for this to work you will need to
change the method on your form.
(Since you do not specify a method in your form,
it will default to the *get* method -- and CodeIgniter
destroys the $_GET variable unless you change its
default settings.)
The *action* your form needs to have is
index.php/form/search/
*/
// Operate on your search data here.
// One possible way to do this:
$this->load->model('search_model');
$results_from_search = $this->search->find_data($term);
// Make sure your model properly escapes incoming data.
$this->load->view('results', $results_from_search);
}
Enlace está muerto. Cara triste. –