Ver Mensaje Individual
  #18 (permalink)  
Antiguo 21/11/2015, 07:54
Avatar de mortiprogramador
mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: mostrar contenido array segun criterio de paginacion

Saludo.

Pues ese no es el problema.
El asunto es que se pierde el filtro pues la paginación usa GET,
en cuyo caso la función de paginación necesita obtener ese dato
para luego usarlo a la hora de dibujar las páginas.

Igualmente, como está el código actualmente, no está dibujando
los links de anterior, siguiente y página por completo, esto es
por el cálculo que se hace en la variabla páginas usando p,
cosa que deberia cambiar a ser usando el count del array que se recibe.

Voy a dejarte el código con algunas mejoras para que lo revises.

array.php
Código PHP:
Ver original
  1. <?php
  2.  
  3.     $datos = array
  4.                     (
  5.                         array('Maria','25','Administrativo'),
  6.                         array('Antonio','45','Gerente comercial'),
  7.                         array('Susana','37','Gerente RR.HH.'),
  8.                         array('Luis','28','Administrativo'),
  9.                         array('Antonio','38','Mozo Almacén'),
  10.                         array('Susana','37','Gerente RR.HH.'),
  11.                         array('Maria','26','Administrativo'),
  12.                         array('Antonio','45','Gerente comercial'),
  13.                         array('Susana','37','Gerente RR.HH.'),
  14.                         array('Maria','27','Administrativo'),
  15.                         array('Antonio','45','Gerente comercial'),
  16.                         array('Susana','37','Gerente RR.HH.')
  17.                     );
  18.  
  19. ?>

index.php
Código PHP:
Ver original
  1. <?php
  2.  
  3.     include_once 'array.php';
  4.     include_once 'paginar.php';
  5.            
  6.     if (isset($_GET['p']))
  7.       $p = $_GET['p'];
  8.     else
  9.       $p=1;      
  10.  
  11.     $t = '';
  12.     if (isset($_GET['t']))
  13.         $t = $_GET['t'];
  14.     else if(isset($_POST['TxtBuscar']))
  15.         $t = $_POST['TxtBuscar'];
  16.  
  17. ?>
  18.  
  19. <form action="index.php" method="post">  
  20.  <input type="text" name="TxtBuscar" size="22" maxlength="150">
  21.  <input type="submit" value="Buscar">
  22.  </form>
  23.  
  24. <?php
  25.     if (isset($t))
  26.     {
  27.         $coincidencias = array();
  28.         foreach($datos as $valor) {
  29.             if($t == $valor[0]){
  30.                 $coincidencias[]=$valor;
  31.             }
  32.         }        
  33.     }
  34.     else
  35.         $coincidencias = $datos;
  36.  
  37. ?>
  38.  
  39. <?php
  40.     //Aqui ponemos el número de elementos que queremos que  aparezca por página, en este caso 2
  41.     paginar($coincidencias, 2, $p, $t);
  42. ?>

paginar.php
Código PHP:
Ver original
  1. <?php
  2.     function paginar($datos, $l, $p, $t) {
  3.     // DEFINIMOS LA CANTIDAD DE PÁGINAS
  4.     $paginas = ceil(count($datos) / $l);
  5.     // CONDICION DE INICIO
  6.     $inicio = ($p-1)*$l;  
  7.     // CONDICION DE FINAL
  8.     $final = $p*$l;
  9.      
  10.     // MOSTRAMOS LOS ITEMS RESPECTIVOS
  11.          echo '<div id="resultados">';
  12.           for ($i=$inicio; $i<$final; $i++) {
  13.              if (isset($datos[$i]))
  14.                 echo "<div id=\"item\">".$datos[$i][0]." ".$datos[$i][1]." ".$datos[$i][2]."</div>";
  15.              else
  16.                 break;
  17.           }
  18.           echo '</div>';
  19.      
  20.     // LISTAMOS LAS PÁGINAS
  21.           echo '<div id="paginas">';
  22.           if ($p>1)
  23.              echo "<a href=\"index.php?p=" . ($p-1) . "&t=".$t."\">P&aacute;gina Anterior</a>&nbsp;-&nbsp;";
  24.          
  25.           for ($i=1; $i<=$paginas; $i++) {
  26.              if ($i == $p)
  27.                 echo "<strong>$i</strong>&nbsp;";
  28.              else
  29.                 echo "<a href=\"index.php?p=$i&t=$t\">$i</a>&nbsp;";
  30.           }
  31.          
  32.           if ($p<$paginas)
  33.              echo "&nbsp;-&nbsp;<a href=\"index.php?p=" . ($p+1) . "&t=$t\">P&aacute;gina Siguiente&nbsp;</a>";
  34.           echo '</div>';
  35.      
  36.     return;
  37.        }
  38.     ?>
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com