PHP - Problema al filtrar con paginador

   
Vista:

Problema al filtrar con paginador

Publicado por Aprendiendo (17 intervenciones) el 01/01/2015 21:44:52
Ante todo FELICES FIESTAS y prospero AÑO NUEVO a todos.

Buenas a tod@s vamos a ver si alguien me puede ayudar con este problema, he reducido el código al máximo para que sea mucho mas fácil ayudarme.

Tengo una página llamada " Vehiculos.php" que tiene 2 zonas diferencias que incluyo con "require" una zona es un menú de Filtrado "MenuFiltrado.php" y la otra es donde muestro el resultado "ContenidoVehiculos.php", lo que hace cada vez que modifico un filtro es con el evento 'onChange' recargar el "ContenidoVehiculos.php", de momento bien.

En "ContenidoVehiculos.php he puesto un páginador (Paginador 3.0.0) y funciona perfectamente por si mismo.

Mi problema es que las 2 cosas juntas no me funcionan bien ya que cada vez que cambio en el paginador la pagina que deseo visualizar me recarga toda la página por lo tanto los filtros que están en "MenuFiltrado" se resetean y me muestra todos los registros por ejemplo si selecciono visualizar los vehículos de un determinado color pues me aparece la primera página del paginador correcta, pero al cambiar de página para ver los siguientes me recarga la página y me visualiza todos los vehículos sin importar su color.

Creo que debería al cambiar de página en el paginador recargar solo "ContenidoVehiculos", pero no se como hacerlo, he mirado en la clase del páginador "Paginador.php" pero repito no se como hacerlo.

A continuación pongo el código de mis 3 páginas y añado como archivo adjunto "Paginador.php".

A ver si me podeis ayudar.

VEHICULOS.PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<?php
if(!isset($_SESSION))
{
session_start();
}
?>
<script type='text/javascript'>
function cargarContenido(pagina)
{
    $("#contenido").html("<img src='Imagenes/loadingbar-green2.gif' class='clock' border='0'>");
    $("#contenido").load(pagina, $("#filtrar,#filtrar2").serialize());
}
</script>
<body>
<div id="ContenedorGeneral">
<div id="Fondo">
<div id="DivFiltrado" style="display:none"><?php require ("MenuFiltrado.php"); ?>
<script type="text/javascript">
function timedCount(){
document.getElementById('DivFiltrado').style.display="block";
}
var t= setTimeout("timedCount()",0);
</script>
<div class="Boton">
         <form name="Todas" method="GET" action="Vehiculos.php">
<input type="submit" name="cmdBuscar" id="cmdBuscar" value="VER TODAS LOS VEHÍCULOS">
<?php /*?><;?php $_SESSION["numpag"]=250;?><?php */?>
</form>
</div>
</div>
<div id='contenido'><?php require ("ContenidoVehiculos.php"); ?></div>
</div><!-- Cierro Fondo -->
</div><!-- Cierro ContenedorGeneral -->
</body>

MENUFILTRADO.PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
<?php
if(!isset($_SESSION))
{
session_start();
}
 
?>
<body>
<form name="filtrar" id="filtrar" method="GET"  action="">
<div id="SeleccionSuperior">
<table width="765" height="30" border="0" cellspacing="5" align="center">
<tr>
<td align="left">
      <select name="selcolor" class="Guias3" id="selcolor"  Onchange="cargarContenido('ContenidoVehiculos.php')">
<?php
    if ( isset($_GET['selcolor']) ){
         echo '<option value="-1" >&nbsp;Todos los Colores&nbsp;</option>';
       }else{
         echo  '<option value="-1" selected >&nbsp;Todos los Colores&nbsp;</option>';
}
	$tablacolor = mysqli_query($conexion, "SELECT * FROM color ORDER BY Color ASC");
	while ($registrocolor = mysqli_fetch_array($tablacolor)){
 
    if(  isset($_GET['selcolor']) and $_GET['selcolor']==$registrocolor['Color'] ){
      $seleccionado = "selected";
      }else{
      $seleccionado = "";
      }
	  echo "<option value='".$registrocolor['Color']."' $seleccionado >".$registrocolor['Color']."</option>";
}
	mysqli_free_result($tablacolor);
		?>
	</select>
</td>
</tr>
</table>
<table width="185" border="0" cellspacing="5">
  <tr><td align="left">
<select name="selordenar" id="selordenar" class="Guias3" Onchange="cargarContenido('ContenidoVehiculos.php')">
<?php
    if ( isset($_GET['selordenar']) ){
         echo '<option value="-1" >&nbsp;Orden aleatorio&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</option>';
       }else{
         echo  '<option value="-1" selected >&nbsp;Orden aleatorio&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</option>';
}
	$tablaordenacion = mysqli_query($conexion, "SELECT * FROM ordenar ORDER BY Descrip_Orden ASC");
	while ($registroordenacion = mysqli_fetch_array($tablaordenacion)){
 
    if(  isset($_GET['selordenar']) and $_GET['selordenar']==$registroordenacion['Ordenacion'] ){
      $seleccionado = "selected";
      }else{
      $seleccionado = "";
      }
	  echo "<option value='".$registroordenacion['Ordenacion']."' $seleccionado >".$registroordenacion['Descrip_Orden']."</option>";
}
	mysqli_free_result($tablaordenacion);
?>
</select>
</td></tr>
</table>
</form>
</div>
</body>

CONTENIDOVEHICULOS.PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
<?php
if(!isset($_SESSION))
{
session_start();
}
$selcolor = isset($_GET["selcolor"])? $_GET["selcolor"]: '';
?>
<body>
<?php
$sql = "SELECT SQL_CALC_FOUND_ROWS * FROM vehiculos, fotos_finales WHERE vehiculos.Id = fotos_finales.Id and vehiculos.Activacion = '1'";
 
       if (isset($_GET['selcolor'])and $_GET['selcolor'] <>'-1') {
		$sql .= "AND vehiculos.Color = '$selcolor' ";
	   }else {$sql .= "AND vehiculos.Color <> '-1' ";
}
        if (isset($_GET['selordenar'])and $_GET['selordenar'] <>'-1') {
		$sql .= " ORDER BY {$selordenar} ";
       }else {$sql .=  ' ORDER BY rand('.$dias_dif.')';
}
			if (!($result = mysqli_query($conexion, $sql))) {
			die(mysqli_error($conexion)); }
	    	$rows = mysqli_fetch_assoc(mysqli_query($conexion, 'SELECT FOUND_ROWS() AS rows'));
 
    // Parametros a ser usados por el Paginador.
    $cantidadRegistrosPorPagina	= $selregistrospagina;
    $cantidadEnlaces            = 2; // Cantidad de enlaces que tendra el paginador.
    $totalRegistros             = $rows['rows'];
    $pagina                     = isset($_GET['pagina'])? $_GET['pagina'] :0;
 
    // Comenzamos incluyendo el Paginador.
    require_once 'Paginador.php';
 
    // Instanciamos la clase Paginador
    $paginador          = new Paginador();
 
    // Configuramos cuanto registros por pagina que debe ser igual a el limit de la consulta mysql
    $paginador->setCantidadRegistros($cantidadRegistrosPorPagina);
    // Cantidad de enlaces del paginador sin contar los no numericos.
    $paginador->setCantidadEnlaces($cantidadEnlaces);
 
    // Agregamos estilos al Paginador
    $paginador->setClass('actual', 'current');
 
    // Y mandamos a paginar desde la pagina actual y le pasamos tambien el total
    // de registros de la consulta mysql.
    $datos              = $paginador->paginar($pagina, $totalRegistros);
 
    // Preguntamos si retorno algo, si retorno paginamos. Nos retorna un arreglo
    // que se puede usar para paginar del modo clasico. Si queremos paginar con
    // el enlace ya confeccionado realizamos lo siguiente.
    if ($datos) {
        $enlaces = $paginador->getHtmlPaginacion('pagina', 'span');
    ?>
    <div class="meneame">
    <?php
        foreach ($enlaces as $enlace) {
            echo $enlace . "\n";
        }
    ?>
    </div>
    <?php
    }
    ?>
<div id="Resultados">
  <?php
		$sql .= 'LIMIT '. ($pagina) * $cantidadRegistrosPorPagina . ',' .$cantidadRegistrosPorPagina;
     $tabla = mysqli_query($conexion, $sql);
     while ($registro = mysqli_fetch_array($tabla)) {
  ?>
<div class="Prueba">
 <table class="MarcoFotoPrincipal" width="183" border="0">
  <tr><td>
<?php
  if (file_exists ("Foto_Principal_Final/".$registro['FotoPrincipal']))
{
?>
  <img border="0" src="Foto_Principal_Final/<?php echo $registro['FotoPrincipal']; ?>" width="165px" height="240px" />
<?php
 }else{
?>
<img border="0" src="Foto_Principal_Final/FotoTemporal.jpg" width="165" height="240px" />
<?php
}
?></td></tr>
  </table>
</div>
<?php
}
mysqli_free_result($tabla);
?>
</body>

Espero que sirva para ayudarme. 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 al filtrar con paginador

Publicado por Felipe (3 intervenciones) el 10/04/2015 10:24:06
Hola, tengo el mismo problema, lo solucionaste??

saludos
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