Ahora he querido meter unos filtros a la paginación. Si selecciono uno de los 11 filtros por ejemplo el pais, y pongo España en la primera página me aparecen los 10(lo tengo limitado a 10 por página) primeros elementos de España pero si le doy a la segunda página me vuelven los elementos por defecto en vez de los elementos pertenecientes al filtro España, es decir lo de todos los paises, es decir sólo me sirve el filtro para la primera página, no sé porqué no me guarda el filtro para la segunda página también.
Pongo el código:
Código PHP:
Ver original
Con esta parte consigo los elementos por página:
Código PHP:
Ver original
$SetNumberOnPage = $NumberOnPage; $SetNumberOnPage = $_GET['pagenum']; } //$beginning = $Page; $getPage = $Page; $getPage = $_GET['page']; } $rcsElementNumber = $cardata->query($qryElementNumber); $row = $rcsElementNumber->fetch_array(MYSQLI_BOTH); if($getPage > $total_pages){ $getPage = $total_pages; } $beginning = (($getPage - 1) *$SetNumberOnPage); } else { $beginning = 0; }
Este es uno de mis filtros por ejemplo, Categoría, una parte de él, q comprueba si el usuario ha seleccionado algo o no y luego mediante la variable $DataFilter va modificando el query para acceder a la base de datos:
Código PHP:
Ver original
//Category $CategoryInput = $_POST['CategoryInput']; if ($CategoryInput !=''){ if($DataFilter!="") { $DataFilter .= " AND "; } $DataFilter .= "category_id = '" . $CategoryInput . "' "; } } else { $CategoryInput = ''; }
Esta es la parte del filtro que se muestra por pantalla con un select para que el usuario elija la opción:
Código PHP:
Ver original
<label for="CategoryInput"><?php echo $arrMainPage[$MainPageCategory]["TextHeader"]; ?></label> <select name="CategoryInput" > <option></option> <?php $rcsCategory = $elementdata->query($qryCategory); while ($row = $rcsCategory->fetch_array(MYSQLI_BOTH)) { if ($row["CategoryCodePK"] == $CategoryInput) { $CategorySelected = "selected"; } else { $CategorySelected = ""; } ?><Option <?php echo $CategorySelected; ?> value="<?php echo $row["CategoryCodePK"]; ?>"><?php echo $row["CategoryDescription"]; ?></option> <?php } echo "</select>" ?> </select>
Y este último select está dentro de este form con su correspondiente btón de búsqueda para que cuando el usuario elija su opción pulse buscar
Código PHP:
Ver original
<form method="post" action="Screen2List2.php"> ... <button type="submit" class="btn btn-primary " value=""/> <i class="icon-search icon-large"></i>SEARCH</button> </form>
Y este es el pie de página donde muestra las páginas limitadas con el botón Next o Previous, y cuando pulso la 2 se pierde el filtro y me vienen todos los elementos que aparecen cuando se carga la página en vez de los elementos filtrados que no caben en la página 1 y por eso están en la 2:
Código PHP:
Ver original
if (($total_pages > 1) AND ($getPage > 1 )) { echo "<a href ='{$_SERVER['PHP_SELF']}?page=".($getPage-1)."'>" .$arrMainPage[$MainPagePrevious]['TextHeader']. "</a> "; } //If current page is < 5 the list start in 1 if not, in current page - 5 if ($getPage < 5) { $StartList = 1; } else { $StartList = $getPage - 5; } // If current page is very near of total_pages, StartList = $total_pages - 10; if ((($getPage + 5) > $total_pages) AND ($total_pages >1)) { $StartList = $total_pages - 10; } //New if //if (($getPage == $total_pages) AND ($total_pages<2)){ if (($total_pages < 0) OR ($getPage < 0)){ echo "1"; }else{ //This for was out of the niew if for($cont = $StartList; $cont <= $StartList + 10; $cont++){ if ($cont == $getPage) { echo "<a class='bold' href ='{$_SERVER['PHP_SELF']}?page=".$cont."'>$cont</a> "; } else { if($total_pages > 1){ echo "<a href ='{$_SERVER['PHP_SELF']}?page=".$cont."'>$cont</a> "; } } } } if(($getPage < $total_pages) AND ($total_pages > 1 )){ echo "<a href ='{$_SERVER['PHP_SELF']}?page=".($getPage+1)."'>" .$arrMainPage[$MainPageNext]['TextHeader']. "</a> "; }
Yo creo que el problema no está en este pie d página si no en la parte del principio de código que he puesto donde los POST, tengo q añadir o modificar algo para que el POST del filtro se mantenga en la segunda página tb y no sólo cuando le doy al botón buscar y me aparece en la primera página.
Si alguien ve donde está el fallo, le estaría muy agradecido.
A lo mejor se me ha psado postear alguna parte de código, creo q he puesto todo lo q se usa para el filtro y la paginación menos los querys para no hacer demasiado extenso el post.
Muchas gracias.
Saludos.