Foros del Web » Programando para Internet » PHP » CodeIgniter »

CodeIgniter -> Mismo Controlador para diferentes vistas

Estas en el tema de CodeIgniter -> Mismo Controlador para diferentes vistas en el foro de CodeIgniter en Foros del Web. Buenos dias, soy nuevo por aqui, bueno nuevo preguntando, porque leyendo ya me ha sacado de más de un apuro este foro. Primero de todo ...
  #1 (permalink)  
Antiguo 13/07/2011, 04:35
 
Fecha de Ingreso: julio-2011
Mensajes: 4
Antigüedad: 13 años, 5 meses
Puntos: 1
CodeIgniter -> Mismo Controlador para diferentes vistas

Buenos dias,

soy nuevo por aqui, bueno nuevo preguntando, porque leyendo ya me ha sacado de más de un apuro este foro.
Primero de todo dar las gracias a la gente que dedica un poco de su tiempo a ayudar a los demas, como los usuarios de este foro, bueno de los foros de programación en general, que parece que cuando alguien contesta un post no se ha roto el coco en pensarlo, pero puedo dar fe de que es asi :)

Bueno mi duda:

Es mi primera aplicacion en CI, y soy incapaz de hacer que un mismo controlador cargue los datos de tres formularios distintos.

Mi idea es que aparezca un formulario lo rellenes, y al dar a siguiente te aparezca otro formulario distinto, y asi asta un tercer y ultimo formulario, y los datos de los 3 formularios vayan al mismo controlador, xq sera este el que tenga que operar con esos valores.

Yo ahora lo que ago es que una clase principal llama ala vista del primer formulario, este envia los datos a un controlador, y desde ese controlador llamo a la vista del segundo formulario y me gustaria que este deolviera os valores al mismo controlador, y el controlador al recibirlos llamara a otra vista diferente que hiciera lo mismo, y asi tendria los valores de los 3 formularios en el mismo controlador.


Seguramente sea una tonteria pero estoy bastante estancado en eso la verdad xDD He probado bastantes cosas y buscado mucho x internet y no lo he visto, o no lo he sabido ver.


Muchas gracias de antemano!
  #2 (permalink)  
Antiguo 13/07/2011, 04:50
Avatar de NUCKLEAR
Moderador radioactivo
 
Fecha de Ingreso: octubre-2005
Ubicación: Cordoba-Argentina
Mensajes: 5.688
Antigüedad: 19 años, 1 mes
Puntos: 890
Respuesta: CodeIgniter -> Mismo Controlador para diferentes vistas

No explicas que vas a hacer con cada formulario, pero algo facil seria enviarle un campo hidden y comparar si se envip y así pasar a la siguiente vista:


Código PHP:
Ver original
  1. public class miForm(){
  2.  
  3. if ($this->input->post('campoHidden') == "paso1"){
  4.  
  5.   $this->load->view('paso1')
  6.  
  7. }
  8.  
  9. else{
  10.  
  11. $this->load->view('form_default');
  12.  
  13. }
  14.  
  15. }


El ejemplo es algo muy básico, podrías usar un switch o un else if... Ahora si quieres guardar los datos mientras recorres el formulario tendrías que usar sessiones asi no perdés los datos, bueno dependiendo si lo querés hacer así.


Saludos.
__________________
Drupal Argentina
  #3 (permalink)  
Antiguo 13/07/2011, 05:23
 
Fecha de Ingreso: julio-2011
Mensajes: 4
Antigüedad: 13 años, 5 meses
Puntos: 1
Respuesta: CodeIgniter -> Mismo Controlador para diferentes vistas

ey muchas gracias crack!!

Si con el if puedo mostrar las vistas que es lo que queria, lo que tambien queria ir almacenando los datos de cada vista, para cuando halla rellenado los 3 formularios poder operar con todos los datos ala vez, pero cada vez que hago el submit de un formulario las variables del controlador se inicializan.

Voy a investigar como funcionan las sesiones que me has comentado, haber si con eso puedo sacarlo.

Muchisimas gracias!


PD: No se si los datos que necesito guardar me cabran en los 4Kb de la cookie... xD

Última edición por victorrins; 13/07/2011 a las 05:34
  #4 (permalink)  
Antiguo 13/07/2011, 06:38
 
Fecha de Ingreso: julio-2008
Ubicación: Barcelona
Mensajes: 2.100
Antigüedad: 16 años, 5 meses
Puntos: 165
Respuesta: CodeIgniter -> Mismo Controlador para diferentes vistas

Mira por el foro porque postee como pasar datos entre formularios, con eso te serviría, básicamente trabaja con hiddens.

Un saludo!
  #5 (permalink)  
Antiguo 13/07/2011, 06:50
Avatar de NUCKLEAR
Moderador radioactivo
 
Fecha de Ingreso: octubre-2005
Ubicación: Cordoba-Argentina
Mensajes: 5.688
Antigüedad: 19 años, 1 mes
Puntos: 890
Respuesta: CodeIgniter -> Mismo Controlador para diferentes vistas

Cita:
Iniciado por victorrins Ver Mensaje


PD: No se si los datos que necesito guardar me cabrán en los 4Kb de la cookie... xD

Podés crear una tabla para almacenar las sessiones si te quedas corto. http://codeigniter.com/user_guide/li.../sessions.html
__________________
Drupal Argentina
  #6 (permalink)  
Antiguo 15/07/2011, 05:07
 
Fecha de Ingreso: julio-2011
Mensajes: 4
Antigüedad: 13 años, 5 meses
Puntos: 1
Respuesta: CodeIgniter -> Mismo Controlador para diferentes vistas

Muchas gracias a todos por las respuestas,

al final me he decantado por guardar la informacion en la cookie de session, pero me pasa algo un poco extraño:

Primero la session la inicio en el controlador principal con :

$this->load->library('session');

Luego a medida que voy rellenando los formularios voy almacenando los arrays en la cookie con :

$this->session->userdata['nombreVar'] = $array;
$this->session->sess_write();

Una vez tengo almacenandos los arrays de los 4 formularios, llamo a una vista y en esta recupero estos arrays y los muestros en una tabla:
Los recupero con:
$array=$this->session->userdata('nombreVar');
Y la tabla la relleno con el asistente de CI.

Hasta aquí todo perfecto!!! Me devuelve bien los 4 arrays etc..

Al final de esta vista hay un anchor que me direcciona a otro controlador, y al intentar recuperar los 4 arrays de la cookie en este controlador es cuando me falla :S Solo me devuelve 3 :S y en el cuarto me devuelve un false como sino existiera.

Seguramente sea una tonteria de novatillo pero bueno, yebo toda la mñ dandole vueltas e intentandolo todo y aun no he tenido huevos a conseguirlo.
Tambien he pensado que podria ser que he excedido el tamaño de la cookie y el ultimo array no cabe, pero no tiene sentido por que en la vista recupero los 4 arrays sin problemas, asi que caben y estan bien almacenados.

Al final del codigo de este controlador utilizo

$this->session->sess_destroy();

Para que no se queden almacenados los arrays en la siguiente prueba que me ha pasado mas de una vez :S



Muchas gracias a todos!

Edit:
Tambien he probado a almacenar los datos con :

$this->session->set_userdata('nombreVar', $array);

y me pasa lo mismo que antes.

Última edición por victorrins; 15/07/2011 a las 05:28
  #7 (permalink)  
Antiguo 15/07/2011, 06:27
 
Fecha de Ingreso: julio-2011
Mensajes: 4
Antigüedad: 13 años, 5 meses
Puntos: 1
Respuesta: CodeIgniter -> Mismo Controlador para diferentes vistas

eyyy gracias de nuevo pero parece que porfin lo he solucionado!!!!!
Despues de toda la mañana al final me he pasado a las sesiones nativas de php xDDD

http://codeigniter.com/wiki/Native_session/

ademas modificando las librerias las puedes utilizar con los comandos propios de CodeIgnitier.

Etiquetas: controlador, diferentes, frameworks-y-php-orientado-a-objetos, vistas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:07.