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

CodeIgniter, como hacer que el controlador cargue una vista u otra?

Estas en el tema de CodeIgniter, como hacer que el controlador cargue una vista u otra? en el foro de CodeIgniter en Foros del Web. Hola a todos! Soy novato, tras varias dudas ya logré arrancar con CodeIgnister, bien ahora os pongo lo primero que quiero hacer, a ver como ...
  #1 (permalink)  
Antiguo 18/03/2011, 10:44
 
Fecha de Ingreso: marzo-2011
Mensajes: 12
Antigüedad: 13 años, 1 mes
Puntos: 0
CodeIgniter, como hacer que el controlador cargue una vista u otra?

Hola a todos!

Soy novato, tras varias dudas ya logré arrancar con CodeIgnister, bien ahora os pongo lo primero que quiero hacer, a ver como lo veis.

He creado un controlador y 2 vistas para cargarlas simultaneas, una contiene el <head> y la otra el <body>.
En la primera tengo puesto un menú.
En la segunda el contenido.

Mi intención es que el <head> sea siempre el mismo, pero que según que sección elija en el menú, pueda cambiar a otra vista con otro <body> diferente.

Bueno, no se si podrá, yo he pensao algo como poner un if en el controlador con una variable a la cual se le pase un valor al hacer click en una sección u otra del menú.

No se si sería esa la mejor opción.

Así que soy todo oidos, cualquier opinión, sugerencia y ayuda será bien recibida.

Saludos!
  #2 (permalink)  
Antiguo 18/03/2011, 11:50
Avatar de HiToGoRoShi  
Fecha de Ingreso: abril-2008
Mensajes: 849
Antigüedad: 16 años
Puntos: 31
Respuesta: CodeIgniter, como hacer que el controlador cargue una vista u otra?

Código PHP:
Ver original
  1. $this->load->view('mi_cabezera');
  2. $this->load->view('mi_cuerpo');
  3. $this->load->view('mi_pie');


Separa la cabezera del pie de la web, y cuando cambias de menu el CUERPO lo cambias por la pagina que desees cargar ejem:


LOGIN
Código PHP:
Ver original
  1. $this->load->view('mi_cabezera');
  2. $this->load->view('mi_login');
  3. $this->load->view('mi_pie');

CARRITO
Código PHP:
Ver original
  1. $this->load->view('mi_cabezera');
  2. $this->load->view('mi_carrito');
  3. $this->load->view('mi_pie');
  #3 (permalink)  
Antiguo 18/03/2011, 11:57
 
Fecha de Ingreso: marzo-2011
Mensajes: 12
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: CodeIgniter, como hacer que el controlador cargue una vista u otra?

hola Hito,

eso lo entiendo, creo mas vistas y las cargo según la que quiera ver.

Lo que no se como hacer es, como hago para que cuando en la pagina clicke encima de un nombre, que será otro apartado de la web, mandé al controlador la orden de que cambien a otra vista.
  #4 (permalink)  
Antiguo 18/03/2011, 13:12
Avatar de HiToGoRoShi  
Fecha de Ingreso: abril-2008
Mensajes: 849
Antigüedad: 16 años
Puntos: 31
Respuesta: CodeIgniter, como hacer que el controlador cargue una vista u otra?

En los controladores, supongamos que quieres cargar la vista de login y tu controlador se llama inicio, puedes crear un metodo dentro del controlador inicio llamado login, asi cuando le des click llamaras a esta direccion

http://localhost/index.php/inicio/login

Y dentro tendras la vista que quieras mostrar, ahora tambien podrias tenerlo por separado y crear un controlador llamado LOGIN, si quieres acceder a este no necesariamente desde el inicio, este punto es un tema de logica de como distribuiras tus controladores

Espero que me hayas captado

Para mostrar el link seria asi

Código PHP:
Ver original
  1. echo anchor('inicio/login','Login');
  #5 (permalink)  
Antiguo 18/03/2011, 14:20
 
Fecha de Ingreso: marzo-2011
Mensajes: 12
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: CodeIgniter, como hacer que el controlador cargue una vista u otra?

vale creo que ya te pillo mas o menos,

http://localhost/index.php/inicio/

eso sería el controlador

y dentro creo varios metodos, tantos como apartados tenga la web, no?

por ejemplo, login, clasificacion, foro, salir...

cada metodo llamaría a su vista correspondiente

y en los enlaces bastaría con llamar al metodo correspondiente, no?

Ahora no lo puedo probar porque estoy en un pc que no es el mio, pero en cuanto pueda haré unas pruebas.

Lo que no entiendo es el código final que me pones. ¿Para que sirve anchor?

Edito: Acabo de mirar lo del anchor, ya he visto que sirve para enlazar.
  #6 (permalink)  
Antiguo 18/03/2011, 14:27
Avatar de HiToGoRoShi  
Fecha de Ingreso: abril-2008
Mensajes: 849
Antigüedad: 16 años
Puntos: 31
Respuesta: CodeIgniter, como hacer que el controlador cargue una vista u otra?

imprime una URL, el primer parametro es la direccion y el segundo el nombre, usa ese porque coge al ruta exacta de tu proyecto.

Otra cosa, si tus menus son bastantes amplios crea mejor controladores por separados en ves de agrupar todo en un solo metodo

Controllador: login, clasificacion, foro, salir

Cuando podrias usar metodos cuando obviamente en el controlador hay funciones que se pueden realizar ahi mismo ejem:

Usuario - este puede actualziar su perfil, ver mensajes privados, no le vas a crear un controlador apra cada uno? ahi si crea metodos, pero es relativo depende de ti

Etiquetas: controlador, 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 14:15.