Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Paginador.php + mysql en web modular con inputs select

Estas en el tema de Paginador.php + mysql en web modular con inputs select en el foro de PHP en Foros del Web. Buenas tardes y antes que nada, gracias a cualquier alma caritativa que quiera echarme una mano. Llevo toda la semana luchando con una paginación y ...
  #1 (permalink)  
Antiguo 08/04/2015, 11:28
 
Fecha de Ingreso: abril-2015
Mensajes: 3
Antigüedad: 9 años, 8 meses
Puntos: 0
Paginador.php + mysql en web modular con inputs select

Buenas tardes y antes que nada, gracias a cualquier alma caritativa que quiera echarme una mano.

Llevo toda la semana luchando con una paginación y por mas que leo y releo foros y ejemplos soy incapaz de llevarla a cabo.
Decir que me funciona el paginador cuando no realizo ninguna busqueda, es decir con todos los resultados, muestra todo correctamente de pagina en pagina; pero al realizar la busqueda, me muestra correctamente los resultados de la primera pagina, pero no los de las sucesivas, y no guarda la opcion escogida en el select. He intentado sesiones, get y distintos ejemplos pero o lo hago mal o no se que pasa.

Se trata de una pagina de alquiler vacacional, y se busca por 5 combos en una base de datos con mysql:
Los mismos son: zona, tipo, precio semana,ocupantes, fecha entrada, fsalida

Para la ayuda solo puse un combo(tipo), porque empece a escribir tantas veces el script, que con que me salga con uno despues seguiria.

Mis scripts:

alquileres.php (equivale a ?mod=rent que se llama desde el index de mi web modular)
Código PHP:
Ver original
  1. //**********Principio paginacion********************
  2. //crea un nuevo objeto de la clase imagenes, que es donde manejo las consultas sql.
  3. $obj = new Imagenes();
  4.  
  5. // Parametros a ser usados por el Paginador
  6. $cantImg = 8; //por página, esto se le pasa a la consulta como limite
  7.  
  8. if(isset($_GET['pagina'])?$_GET['pagina']:$pagina=0);
  9. $inicio = $cantImg * $pagina;
  10. $criterio = '';
  11.  
  12. //mantiene la opcion escogida en el combo  tipo si se escogio una opcion y se buscó
  13. if(isset($_POST['tipo'])?$_POST['tipo']:$tipo=0);
  14.  
  15. if (isset($_POST['tipo']) && $_POST['tipo'] != 0) {
  16.     $_SESSION['TIPO'] = $_POST['tipo'];
  17.     $criterio .= 'WHERE tipo = ' . $_POST['tipo'];
  18. }
  19.  
  20. //se recoge el resultado de la consulta con el filtro criterio y los limites inicio,cantImg
  21. $datos = $obj->getPropiedades($criterio, $inicio, $cantImg);
  22.  
  23. //se recoge el total de la consulta de arriba
  24. $total = $obj->TotalPropiedades($criterio);
  25. $cantPag = ceil($total / $cantImg);
  26. //*******************fin paginacion************************************
  27. ?>

en el mismo archivo el form
Código PHP:
Ver original
  1. <form action="?mod=rent" name="fenvia" method="post">
  2.             <input type="hidden" name="criterio" value="<?php echo $criterio ?>">                        
  3.                   Tipo vivienda:<br><select name="tipo" class="alquiler">
  4.                   <?php echo "<option value='0'selected=selected"; if($tipo == 0) echo " selected";echo ">Cualquiera</option>";
  5.                   echo "<option value='1'"; if($tipo == 1) echo " selected";  echo ">Apartamento</option>";
  6.                   echo "<option value='2'"; if($tipo == 2) echo " selected";  echo ">Casa</option>";?>
  7.                   </select>
  8.              
  9.                <input type="submit" name="buscar" value="Buscar" class="button">&nbsp;<input type="reset" class="button" value="Borrar">      
  10.           </form>

pagination.php
se incluye en el layout de mi web modulada si el modulo=rent
utilizo la clase Paginador.php
Código PHP:
Ver original
  1. <?php
  2.     // Parametros a ser usados por el Paginador.
  3.     $cantidadRegistrosPorPagina = &$cantImg;
  4.     $cantidadEnlaces = 6; // Cantidad de enlaces que tendra el paginador.
  5.     $totalRegistros = &$total; 
  6.     $pagina = isset($_GET['pagina'])? $_GET['pagina'] : 0;
  7.    
  8.     // Comenzamos incluyendo el Paginador.
  9.     require_once 'Paginador.php';
  10.    
  11.     // Instanciamos la clase Paginador
  12.     $paginador          = new Paginador();
  13.  
  14.     // Configuramos cuanto registros por pagina que debe ser igual a el limit de la consulta mysql
  15.     $paginador->setCantidadRegistros($cantidadRegistrosPorPagina);
  16.     // Cantidad de enlaces del paginador sin contar los no numericos.
  17.     $paginador->setCantidadEnlaces($cantidadEnlaces);
  18.    
  19.     // Le marcamos cuales enlaces deseamos omitir.
  20.     $paginador->setOmitir(array('bloqueAnterior',
  21.                                 'bloqueSiguiente',
  22.                                 ));
  23.                                
  24.     //Cambiamos los textos por defecto para anterior y siguiente
  25.     $paginador->setTitulosVista('anterior', '< anterior');
  26.     $paginador->setTitulosVista('siguiente', 'siguiente >');   
  27.     $paginador->setTitulosVista('primero', '<< primera');
  28.     $paginador->setTitulosVista('ultimo', 'ultima >>');
  29.    
  30.     // Propagamos Variables
  31.    
  32.     $paginador->setMarcador('','');
  33.    
  34.     $paginador->setPropagar(array('mod'));                 
  35.    
  36.     // Agregamos estilos al Paginador
  37.     $paginador->setClass('primero',         'previous');
  38.     $paginador->setClass('anterior',        'previous');
  39.     $paginador->setClass('siguiente',       'next');
  40.     $paginador->setClass('ultimo',          'next');
  41.     $paginador->setClass('numero',          '<>');
  42.     $paginador->setClass('actual',          'active');
  43.    
  44.     // Y mandamos a paginar desde la pagina actual y le pasamos tambien el total
  45.     // de registros de la consulta mysql.
  46.     $datos = $paginador->paginar($pagina, $totalRegistros);
  47.    
  48.     // Preguntamos si retorno algo, si retorno paginamos. Nos retorna un arreglo
  49.     // que se puede usar para paginar del modo clasico. Si queremos paginar con
  50.     // el enlace ya confeccionado realizamos lo siguiente.
  51.     if ($datos) {
  52.         $enlaces = $paginador->getHtmlPaginacion('pagina', 'span');
  53.     ?>
  54.     <div class="meneame">
  55.     <span class="current">
  56.     <?php
  57.     echo "Resultados: ".$total."- P&aacute;gina ".($pagina+1)." de ".$cantPag;
  58.     ?>
  59.     </span>
  60.     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp
  61.     <?php
  62.         foreach ($enlaces as $enlace) {
  63.             echo $enlace . "\n";
  64.         }
  65.     ?>
  66.     </div>
  67.     <?php
  68.     }
  69.     ?>
  70.     <!-- viene de la pagina alquileres.php-->

Y esto es todo, me falta solo que cuando escojo una opcion en tipo, se mantenga al pasar de pagina y me muestre los resultados de dicha pagina.
  #2 (permalink)  
Antiguo 08/04/2015, 11:45
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 11 años, 5 meses
Puntos: 379
Respuesta: Paginador.php + mysql en web modular con inputs select

Reuriliza: http://www.forosdelweb.com/f18/paginacion-1122484/
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #3 (permalink)  
Antiguo 08/04/2015, 11:57
 
Fecha de Ingreso: abril-2015
Mensajes: 3
Antigüedad: 9 años, 8 meses
Puntos: 0
Respuesta: Paginador.php + mysql en web modular con inputs select

Hola gracias por una respuesta tan rapida, le eche un vistazo a donde me redireccionas y el problema es que yo ya estoy utilizando una clase que es: paginador.php 3.0
[URL="http://objetivophp.com/wp-content/uploads/Paginador_3.0.0.zip"][/URL]
y funciona perfecto, excepto que no se como hacer para que cuando realizo la busqueda me guarde la opcion escogida en el select y en la segunda pagina de esa busqueda me muestre dichos resultados y no como ahora que me vuelve a mostrar los totales.

La paginacion va bien, cuando no hago busquedas.

ED:por cierto el form es por POST, intente con get, a ver si era por un tema de la recogida de las variables, pero no me envia a ?mod-rent sino a index.php

Última edición por betty2002; 08/04/2015 a las 12:09
  #4 (permalink)  
Antiguo 08/04/2015, 13:59
 
Fecha de Ingreso: abril-2015
Mensajes: 3
Antigüedad: 9 años, 8 meses
Puntos: 0
Respuesta: Paginador.php + mysql en web modular con inputs select

Estoy intentando hacerlo con get en lugar de post, pero al darle a buscar no me lleva a ?mod=rent sino a index.php y no se porque, con post si que me lleva.
Puse tambien: action=index.php?mod=rent , y pasa lo mismo.

Alguna idea???

Código PHP:
Ver original
  1. <form action="?mod=rent" name="fenvia" method="get">
  2.             <div class="width15 floatLeft">
  3.             <input type="hidden" name="criterio" value="<?php echo $criterio ?>">                        
  4.                <h4>
  5.                   Tipo vivienda:<br><select name="tipo" class="alquiler">
  6.                   <?php echo "<option value='0'selected=selected";echo ">Cualquiera</option>";
  7.                   echo "<option value='1'"; echo ">Apartamento</option>";
  8.                   echo "<option value='2'"; echo ">Casa</option>";?>
  9.                   </select>
  10.                </h4>
  11.              </div>
  12.                            
  13.             <br>  
  14.              
  15.            <div class="width15 floatLeft">      
  16.                <input type="submit" name="buscar" value="Buscar" class="button">&nbsp;<input type="reset" class="button" value="Borrar"><br>                                           
  17.            </div>          
  18.           </form>


resuelto: se pasa el modulo como campo hidden y el action al index, por POST imposible.

<form action="index.php" name="fenvia" method="get">
<input type="hidden" name="mod" value="rent">
<div class="width15 floatLeft">
<input type="hidden" name="criterio" value="<?php echo $criterio ?>">
<h4>
Tipo vivienda:<br><select name="tipo" class="alquiler">

Última edición por betty2002; 09/04/2015 a las 08:39 Razón: solucionado

Etiquetas: fecha, html, inputs, modular, mysql, registro, select, sql, 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 02:01.