Foros del Web » Programando para Internet » PHP »

Problema checbox con variable de session

Estas en el tema de Problema checbox con variable de session en el foro de PHP en Foros del Web. Hola a tod@s feliz año. Vereis estoy mejorando mi web y al hacerlo me ha surgido un problema, tal como esta el código que pongo ...
  #1 (permalink)  
Antiguo 10/01/2015, 14:33
 
Fecha de Ingreso: diciembre-2014
Mensajes: 11
Antigüedad: 9 años, 11 meses
Puntos: 0
Problema checbox con variable de session

Hola a tod@s feliz año.

Vereis estoy mejorando mi web y al hacerlo me ha surgido un problema, tal como esta el código que pongo hasta ahora me ha funcionado bien pero al intentar la mejora es cuando me encuentro que no se exactamente como hacerlo:

Tengo una pagina que contiene otras 2 una la utilizo como menú de filtrado y la otra es la que me muestra el contenido

Contenedor.php //Contiene las 2 página siguientes
MenuFiltrado.php //contiene los checbox para filtrar
ResultadoConsulta.php // Contiene la consulta y muestra el resultado de la misma

Según el código siguiente lo que hace es que al cambiar el estado del checkbox se actualizan los resultados y funciona bien, lo que ocurre es que he añadido un páginador y al cambiar de páginas en el mismo me recarga la página y me borra el estado chequeado de los checbox, por ejemplo si quiero ver los coches italianos marco el checbox y me muestra los coches italianos pero al refrescar la página o al cambiar con el páginador me los vueve a mostrar todos así que he pensado en utilizar variables de sesión para mantener los valores del checkbox y que la consulta me la haga utilizando dichas variables una por cada checbox.
Esto es como esta el código antes de comenzar la mejora:

CONTENEDOR.PHP

Código PHP:
Ver original
  1. bla, bla, bla...
  2. <div id="DivFiltrado" style="display:none"><?php require ("MenuFiltrado.php"); ?>
  3. <div id='contenido'><?php require ("ResultadoConsulta.php"); ?></div>
  4. bla, bla, bla,...

MENUFILTRADO.PHP

Código PHP:
Ver original
  1. bla, bla, bla,..
  2. if (isset($_GET["italiano"])){
  3.     echo "<input type='checkbox' name='italiano' id='italiano' value='1' checked onClick=\"cargarContenido('ResultadoConsulta.php')\"/>";
  4. }else{
  5.     echo "<input type='checkbox' name='italiano' id='italiano' value='1' onClick=\"cargarContenido('ResultadoConsulta.php')\"/>";}
  6. ?>
  7. <label class="Guias3">&nbsp;Italiano</label>
  8. bla, bla, bla, ....

RESULTADOCONSULTA.PHP
Código PHP:
Ver original
  1. bla, bla, bla, ...
  2. $italiano = isset($_GET['italiano']);
  3. $sql = "SELECT SQL_CALC_FOUND_ROWS * FROM coches WHERE coches.Activacion = '1'";
  4.  if (isset($_GET['italiano'])and $_GET['italiano'] ='1') {
  5. $sql .= "AND coches.Italiano = '$italiano' ";
  6.  }else {$sql .= "AND (coches.Italiano = '1' or coches.Italiano = '0')";
  7. }
  8.        if ($_SESSION["Ordenar"] <>'-1') {
  9.     $sql .= " ORDER BY {$selordenar} ";
  10.          }else {$sql .=  ' ORDER BY rand('.$dias_dif.')';
  11. }
  12. $sql .= 'LIMIT '. ($pagina) * $cantidadRegistrosPorPagina . ',' .$cantidadRegistrosPorPagina;
  13. $tabla = mysqli_query($conexion, $sql);
  14. while ($registro = mysqli_fetch_array($tabla)) {
  15. // bla, bla, bla,...
  16. }
He hecho muchas pruebas sustituyendo el envio por $_GET por variable de Session y en algunos casos he conseguido que medio funcionara pero al refrescar la página o al utilizar el paginador la variable de sesión se me reseteaba y me volvia al valor inicial, no pongo aquí ninguna de las pruebas que he realizado porque son muchas y confundiría con este código que he puesto que es como esta la página actualmente pero si alguien quiere que le diga mas o menos cuales han sido mis intentos no tengo problema.
Os agradeceré la ayuda que me podáis prestar, gracias
  #2 (permalink)  
Antiguo 10/01/2015, 16:00
Avatar de eluna90  
Fecha de Ingreso: enero-2015
Mensajes: 12
Antigüedad: 9 años, 10 meses
Puntos: 1
Respuesta: Problema checbox con variable de session

Hola amigo,

Lo que se me ocurre es que cuando le des click al checbox genere un ajax, y que lo guarde en sesión talvez con el la hora minuto segundo + id del checkbox y que cuando vaya a la siguiente pagina este activa o esten activas las sesiones de los checboxes seleccionados.

Saludos!
  #3 (permalink)  
Antiguo 11/01/2015, 03:09
 
Fecha de Ingreso: diciembre-2014
Mensajes: 11
Antigüedad: 9 años, 11 meses
Puntos: 0
Respuesta: Problema checbox con variable de session

Gracias eluna90
No se a que te refieres con lo de la hora, minuto, segundo, a lo mejor me esplique mal, lo que necesito es que la primera vez el checkbox me guarde el valor en una variable de sesión y que cuando se me recargue la página el checbox tome ese valor osea si es valor "1" me ponga que esta chequeado y si es valor "0" me lo deje sin chequear, por supuesto si cambio la condición del checbox necesito que me cambie de nuevo el valor de dicha variable de sesión.
Gracias a ver si alguien me dice como hacerlo.
  #4 (permalink)  
Antiguo 11/01/2015, 12:24
Avatar de eluna90  
Fecha de Ingreso: enero-2015
Mensajes: 12
Antigüedad: 9 años, 10 meses
Puntos: 1
Respuesta: Problema checbox con variable de session

Hola

Lo de la hora minuto y segundo es opcional es como una especie de token para que la sesion fuera unica!

Yo lo que hago es que le pongo una valor distinto a cada checkbox para que lo guarde en sesion.

<input type='checkbox' name='primero' id='primero' value='1' <?php if($sesion_activa=='1') echo 'checked="checked"' ?> />

Algo asi para que verifique si la seccion esta activa y te lo deje checkeado

Asi es como hago para mis proyectos.

Saludos
  #5 (permalink)  
Antiguo 12/01/2015, 00:53
 
Fecha de Ingreso: diciembre-2014
Mensajes: 11
Antigüedad: 9 años, 11 meses
Puntos: 0
Respuesta: Problema checbox con variable de session

eluna90

De nuevo gracias, lo probare y veré si me funciona, ya te comentare.

Un saludo.
  #6 (permalink)  
Antiguo 13/01/2015, 06:51
 
Fecha de Ingreso: diciembre-2014
Mensajes: 11
Antigüedad: 9 años, 11 meses
Puntos: 0
Respuesta: Problema checbox con variable de session

Bueno no consigo hacerlo funcionar, voy a ver si por partes y con vuestra ayuda lo consigo.

Si selecciono el checkbox la variable $italiano me toma el valor 1 y en la consulta me selecciona los coches italianos, si lo des-selecciono la consulta me muestra todos los coches eso es correcto.
Mi problema es que si refresco la página y el checkbox esta seleccionado se me deselecciona y me muestra todos los coches, igual que cuando entro a la página por primera vez y eso no me vale.
El código que tengo es el siguiente:
Código PHP:
Ver original
  1. if (isset($_GET["italiano"])){
  2.     echo "<input type='checkbox' name='italiano' id='italiano' value='1' checked onClick=\"cargarContenido('ContenidoResultadosCoches.php')\"/>";
  3. }else{
  4.     echo "<input type='checkbox' name='italiano' id='italiano' value='1' onClick=\"cargarContenido('ContenidoResultadosCoches.php')\"/>";}
  5. ?>
A ver si así paso a paso consigo resolver el problema, Gracias a tod@s.
  #7 (permalink)  
Antiguo 13/01/2015, 07:27
 
Fecha de Ingreso: enero-2015
Mensajes: 40
Antigüedad: 9 años, 10 meses
Puntos: 8
Respuesta: Problema checbox con variable de session

Si no me equivoco lo que te falta es llamar a la función "cargarContenido('ContenidoResultadosCoches.ph p')" al recargar la página
Código PHP:
Ver original
  1. if (isset($_GET["italiano"])){
  2.     echo "<input type='checkbox' name='italiano' id='italiano' value='1' checked onClick=\"cargarContenido('ContenidoResultadosCoches.php')\"/>";
  3.    //Aquí tendrías que llamar a la función javascript.
  4. }else{
  5.     echo "<input type='checkbox' name='italiano' id='italiano' value='1' onClick=\"cargarContenido('ContenidoResultadosCoches.php')\"/>"
  6. }
  7. ?>
  #8 (permalink)  
Antiguo 14/01/2015, 01:38
 
Fecha de Ingreso: diciembre-2014
Mensajes: 11
Antigüedad: 9 años, 11 meses
Puntos: 0
Respuesta: Problema checbox con variable de session

Gracias Quintan

Veras como puse en el anterior post lo he dividido en partes para ver si era mas comprensible pero en realidad si ves mi post inicial mi problema es que consta de tres páginas y mientras no pagino todo va bien, ya que cada vez que realizo un cambio en el checbox de la página "MenuFiltrado.php" con el evento onClick solo me carga la pagina "ResultadoConsulta.php" ahora la he renombrado a "ContenidoResultadosCoches.php" y por lo tanto al no refrescar la página "MenuFiltrado.php, me mantiene el valor del Checkbox y funciona todo bien.

Mi problema es que cuando págino me refresca también la página "MenuFiltrado.php y pierdo el valor del checkbox, mostrándome la consulta la totalidad de coches (esta se encuentra en la página "ContenidoResultadosCoches).

Perdón por si no me estoy explicando bien.

Lo he intentado con una variable de sesión y de verdad he hecho tantas pruebas que ya no se lo que he probado y lo que no, pero el resultado hasta ahora ha sido negativo.

Gracias de nuevo por vuestra ayuda pero de verdad, no tengo en este momento ni idea de como hacerlo, por supuesto no voy a dejar de intentarlo.

Un saludo.
  #9 (permalink)  
Antiguo 14/01/2015, 01:47
 
Fecha de Ingreso: enero-2015
Mensajes: 40
Antigüedad: 9 años, 10 meses
Puntos: 8
Respuesta: Problema checbox con variable de session

Yo las paginaciones por lo general las hago a través de javascript, de todas formas lo que se me ocurre es que metas los checkbox dentro de un formulario y que el link de la página sea un send de dicho formulario (junto con el id de la página) para que así puedas actuar en consecuencia.
  #10 (permalink)  
Antiguo 14/01/2015, 02:14
 
Fecha de Ingreso: diciembre-2014
Mensajes: 11
Antigüedad: 9 años, 11 meses
Puntos: 0
Respuesta: Problema checbox con variable de session

Quintan.

Los checkbox están dentro de un formulario.

El paginador es "Paginador 3.0.0"

Disculpa pero como mis conocimientos son de principiante no se que es que el link sea un send de dicho formulario, voy a buscarlo en la red para aprender que es.

Mientras tanto voy a seguir haciendo pruebas con JavaScript y con variables de sesión

Gracias por las molestias que te estas tomando.

Un saludo
  #11 (permalink)  
Antiguo 14/01/2015, 02:22
 
Fecha de Ingreso: enero-2015
Mensajes: 40
Antigüedad: 9 años, 10 meses
Puntos: 8
Respuesta: Problema checbox con variable de session

Cuando digo que el link te haga un send es que en vez de llevar el tipico enlace le pongas una funcion onclick que llame a una función javascript y que esta haga un envio del formulario (document.forms["nombredelformulario"].submit();), con esto al recargar la página podrás ver qué es lo que está chequeado con los correspondientes $_POST.
  #12 (permalink)  
Antiguo 14/01/2015, 03:12
 
Fecha de Ingreso: diciembre-2014
Mensajes: 11
Antigüedad: 9 años, 11 meses
Puntos: 0
Respuesta: Problema checbox con variable de session

Ahora si te entendí Quintan voy a intentarlo gracias.

Etiquetas: mysql, registro, select, session, sql, tabla, variable
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:06.