PHP - Problema con Checkbox y variable de Session

   
Vista:

Problema con Checkbox y variable de Session

Publicado por Aprendiendo (17 intervenciones) el 10/01/2015 21:18:27
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
1
2
3
4
bla, bla, bla...
<div id="DivFiltrado" style="display:none"><?php require ("MenuFiltrado.php"); ?>
<div id='contenido'><?php require ("ResultadoConsulta.php"); ?></div>
bla, bla, bla,...

MENUFILTRADO.PHP

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

RESULTADOCONSULTA.PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
bla, bla, bla, ...
$italiano = isset($_GET['italiano']);
$sql = "SELECT SQL_CALC_FOUND_ROWS * FROM coches WHERE coches.Activacion = '1'";
 if (isset($_GET['italiano'])and $_GET['italiano'] ='1') {
$sql .= "AND coches.Italiano = '$italiano' ";
 }else {$sql .= "AND (coches.Italiano = '1' or coches.Italiano = '0')";
}
       if ($_SESSION["Ordenar"] <>'-1') {
	$sql .= " ORDER BY {$selordenar} ";
         }else {$sql .=  ' ORDER BY rand('.$dias_dif.')';
}
$sql .= 'LIMIT '. ($pagina) * $cantidadRegistrosPorPagina . ',' .$cantidadRegistrosPorPagina;
$tabla = mysqli_query($conexion, $sql);
while ($registro = mysqli_fetch_array($tabla)) {
// bla, bla, bla,...
}
mysqli_free_result($tabla);

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
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Problema con Checkbox y variable de Session

Publicado por Aprendiendo (17 intervenciones) el 11/01/2015 10:19:36
Por si 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 el valor de la variable de sesión es "1" me ponga que esta chequeado y si es valor "0" me lo deje sin chequear, por supuesto si cambio la condición del checkbox necesito que me cambie de nuevo el valor de dicha variable de sesión.
Gracias a ver si alguien me dice como hacerlo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Problema con Checkbox y variable de Session

Publicado por Aprendiendo (17 intervenciones) el 13/01/2015 14:01:05
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:

1
2
3
4
5
if (isset($_GET["italiano"])){
    echo "<input type='checkbox' name='italiano' id='italiano' value='1' checked onClick=\"cargarContenido('ContenidoResultadosCoches.php')\"/>";
}else{
    echo "<input type='checkbox' name='italiano' id='italiano' value='1' onClick=\"cargarContenido('ContenidoResultadosCoches.php')\"/>";}
?>

A ver si así paso a paso consigo resolver el problema, Gracias a tod@s.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

Problema con Checkbox y variable de Session

Publicado por xve (5522 intervenciones) el 13/01/2015 17:11:46
Hola, mucho mejor poco a poco...

cuando dices refrescar la pagina, te refieres a F5? o a enviar el formulario?

Al refrescar la pagina, que yo sepa, la única manera es utilizar con javascript cookies...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Problema con Checkbox y variable de Session

Publicado por Aprendiendo (17 intervenciones) el 14/01/2015 09:12:38
Gracias xve.

Si me refiero a F5.

Veras aparentemente el problema es sencillo, pero me esta costando mil demonios y un montón de horas probando,

Resumiendo tengo una pagina principal que contiene otras 2 páginas
La primera se llama ("MenuFiltrado.php") contiene una serie de checkbox para filtrar una consulta (parte es el código del checkbox que figura anterior a este post), cada vez que selecciono un determinado checkbox, con el evento onClick del mismo cargo mi segunda página que es la que contiene la consulta (ahora se llama por que la he renombrado "cargarContenidoResultadosCoches.php). Como MenuFiltrado.php no se recarga ni se refresca todo va bien.

El problema es que tengo un páginador y cada vez que cambio de página si me carga de nuevo la página "MenuFiltrado.php" y entonces el checkbox vuelve a su estado inicial y la consulta me muestra todos los coches, ocurre lo mismo si pulso F5.

He hecho tantas pruebas que ya no se ni lo que he probado, lo he intentado con una variable de sesión para guardar el valor del checkbox pero sigue haciendo lo mismo y sigue fallando.

La verdad estoy atascado, espero que alguien me pueda ayudar, gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar