Foros del Web » Programando para Internet » PHP »

Perdida de variables en includes

Estas en el tema de Perdida de variables en includes en el foro de PHP en Foros del Web. Buenas. Tengo un problema con varios include y un menú. La idea, a grandes rasgos es, un index con un menú y un div donde ...
  #1 (permalink)  
Antiguo 31/05/2012, 21:11
 
Fecha de Ingreso: mayo-2012
Mensajes: 20
Antigüedad: 11 años, 11 meses
Puntos: 2
Perdida de variables en includes

Buenas. Tengo un problema con varios include y un menú.
La idea, a grandes rasgos es, un index con un menú y un div donde se hacen diferentes includes. Pensé en hacerlo lo mas dinámico posible y no perder tiempo recargando toda la pagina, sino que solo se actualice el contenido del div de acuerdo al botón apretado.

Pense en hacer los "cambios" de los includes con JavaScript, pero como estoy utilizando una session de php (que se abre en el index, porque tambien se usa en este, asi que reabrir sesiones en cada include no es una solucion) y este corre del lado del cliente, pierdo los cambios que hago en las variables de php.

Existe alguna solucion practica? O la unica salida es recargar toda la pagina en cada click del menu?
Busque bastante por internet sobre "includes dinamicos" pero no entendi demasiado y como lo que estoy haciendo es mas para aprender que otra cosa, no apliqué demasiado a eso de "copiar y pegar".

Saludos.
No se si este era el lugar correcto para la pregunta, pero bueno, cualquier cosa muevan sin miedo :).
  #2 (permalink)  
Antiguo 31/05/2012, 21:28
 
Fecha de Ingreso: julio-2008
Ubicación: Córdoba, Argentina
Mensajes: 266
Antigüedad: 15 años, 9 meses
Puntos: 26
Respuesta: Perdida de variables en includes

Hola.

Eso puede lograrse con AJAX. Una forma sencilla (y la única que conozco, ya que no tengo conocimientos amplios sobre esto) es hacer un hipervínculo que en vez de apuntar a index.php y pasarle una variable GET con la página a cargar (como <a href="index.php?sec=contacto">Contacto</a>), ejecute una función JavaScript pasándole como parámetro el nombre del archivo a incluir (por ejemplo <a href="javascript:cargarSeccion('contacto')">Contac to</a>) y que ésta cree un objeto AJAX, realice la petición del archivo que le indicaste e incluya el resultado en HTML de esa ejecución dentro de tu <div>. Con esto cambiarías de sección sin recargar la página, incluso puedes mostrar la típica imagen de "cargando..." mientras se carga la sección.
No te doy ejemplos de código por si quieres probar por tu cuenta primero.

Un saludo.
  #3 (permalink)  
Antiguo 31/05/2012, 21:53
 
Fecha de Ingreso: mayo-2012
Mensajes: 20
Antigüedad: 11 años, 11 meses
Puntos: 2
Respuesta: Perdida de variables en includes

Hice exactamente eso que comentas (o eso es lo que yo creo), mediante JQuery con un codigo parecido a este para cada boton:

Código:
	$('#btnAgenda').click(function(){
		$('#includes').load('agenda.php');
	});
"btnAgenda" es el boton del menu (hay una de esas funciones para cada boton), "includes" es el div donde se cargan los distintos includes y "agenda.php" es el archivo que se tiene que cargar (que obviamente, varia segun el boton).

El problema es que cuando hago esas cargas y alguna variable se actualizo en los includes, al hacer el cambio se pierde el nuevo valor y por poner un ejemplo, si hacia algo de la forma $_SESSION['logueado'] = TRUE, en el proximo cambio sigue siendo FALSE y la sesion se cierra.
  #4 (permalink)  
Antiguo 31/05/2012, 22:13
Avatar de echevemaster  
Fecha de Ingreso: diciembre-2002
Ubicación: Carabobo, Venezuela
Mensajes: 84
Antigüedad: 21 años, 4 meses
Puntos: 1
Respuesta: Perdida de variables en includes

Cita:
Iniciado por gzanitti Ver Mensaje
Hice exactamente eso que comentas (o eso es lo que yo creo), mediante JQuery con un codigo parecido a este para cada boton:

Código:
	$('#btnAgenda').click(function(){
		$('#includes').load('agenda.php');
	});
"btnAgenda" es el boton del menu (hay una de esas funciones para cada boton), "includes" es el div donde se cargan los distintos includes y "agenda.php" es el archivo que se tiene que cargar (que obviamente, varia segun el boton).

El problema es que cuando hago esas cargas y alguna variable se actualizo en los includes, al hacer el cambio se pierde el nuevo valor y por poner un ejemplo, si hacia algo de la forma $_SESSION['logueado'] = TRUE, en el proximo cambio sigue siendo FALSE y la sesion se cierra.
El problema es que no estas pasando parámetros a la función que desencadena el evento:

Código Javascript:
Ver original
  1. $("#includes").load("agenda.php", {valor1:$('#valor').val()} ,function(){
  2.    
  3. });

Estos serán pasados por $_POST a tu script.
__________________
En el codigo esta la solucion, pero no la encuentro por ningun lado.
  #5 (permalink)  
Antiguo 31/05/2012, 22:42
 
Fecha de Ingreso: mayo-2012
Mensajes: 20
Antigüedad: 11 años, 11 meses
Puntos: 2
Respuesta: Perdida de variables en includes

Bien, ya le voy agarrando la mano.
A ver si entendí bien. En teoria estaria guardando el valor (o los valores?) que tenga #valor y los estaria almacenando en valor1, no es cierto?

Ahora, esto no queda "guardado" en JavaScript? Como lo puedo recibir para volverselo a cargar a $_SESSION['variable'] en PHP?
Y siendo el caso contrario, con la variable que quiero pasar almacenada en $_SESSION['variable'], como la puedo "bajar" a JavaScript para pasarla en el include y despues volver a cargar?
  #6 (permalink)  
Antiguo 31/05/2012, 22:56
 
Fecha de Ingreso: junio-2011
Mensajes: 14
Antigüedad: 12 años, 9 meses
Puntos: 2
Respuesta: Perdida de variables en includes

Estimado creo que la solucion la tienes aqui!!

http://www.cesarcancino.com/videotutorial-10-del-curso-de-php-y-mysql-n38.html

Ahi puedes ver como hacerlo facil y sencillo.

Exito.

Etiquetas: includes, perdida, variables
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 05:53.