Foros del Web » Programando para Internet » PHP »

Problemas al momento de paginar resultados con filtros

Estas en el tema de Problemas al momento de paginar resultados con filtros en el foro de PHP en Foros del Web. Buenas como están, recurro nuevamente a este foro en busca de ayuda ya que me he reventado el coco y no tengo la solución. veran ...
  #1 (permalink)  
Antiguo 04/11/2014, 23:58
 
Fecha de Ingreso: julio-2013
Mensajes: 123
Antigüedad: 10 años, 9 meses
Puntos: 1
Problemas al momento de paginar resultados con filtros

Buenas como están, recurro nuevamente a este foro en busca de ayuda ya que me he reventado el coco y no tengo la solución.

veran estoy tratando de paginar un resultado filtrado, este resultado me funciona a la perfección pero cuando intento filtrar al buscar me muestra el primer resultado pero al darle click a siguiente no me toma las variables del filtro.

aqui el codigo

Código HTML:
Ver original
  1. <form name="actividad" id="actividad" method="get" action="busca_actividad.php">
  2. <table bordercolor="#D2D2D2"  align=center id="bordes" width="100%">
  3. <tr>
  4.   <td> <strong>Escoja el tipo de Busqueda: </strong></td></tr>
  5.   <tr><td><select name="tipobusqueda">
  6.     <option value="actividad">Actividad</option>    
  7.     <option value="fecha">Fecha</option>
  8.   </select>
  9.     <a  class="tTip" title="Al escoger actividad solo coloca una palabra relacionada con ella en el campo termino de busqueda. Si escoge fecha coloque la fecha Ejm: dia/mes/año">  <img src="../../img/expli.jpg" width="18" height="18"></a></td><tr>
  10.     <td>
  11.  <strong>Introduzca el Termino de Busqueda: </strong><br />
  12.  <input name="terminobusqueda" type="text">
  13.  <input type="submit" value="Buscar" class="maqueta-btn">
  14.  <input type="reset" value="Borrar" class="maqueta-btn"></form>

Código HTML:
Ver original
  1. <table bordercolor="#D2D2D2" cellpadding="4" cellspacing="0" align=center id="bordes" width="200%">
  2. <tr><td><h3 align="center">Resultado de la Busqueda de Actividades en el sistema</h3>
  3. <h4 align="center">Para la Opción Indicada</h4>      
  4.   <div id="contenido">
  5.   <?php include('paginador.php')?>
  6.  </div>
  7.  
  8.             </td>
  9. </tr>

Código PHP:
Ver original
  1. <?php
  2.  
  3. require('../../funciones/conexion.php');
  4. $RegistrosAMostrar=4;
  5.  
  6. //estos valores los recibo por GET
  7. if(isset($_GET['pag'])){
  8.     $RegistrosAEmpezar=($_GET['pag']-1)*$RegistrosAMostrar;
  9.     $PagAct=$_GET['pag'];
  10.     //caso contrario los iniciamos
  11. }else{
  12.     $RegistrosAEmpezar=0;
  13.     $PagAct=1;
  14. }
  15.  
  16. $tipobusqueda=$_GET['tipobusqueda'];
  17. $terminobusqueda=$_GET['terminobusqueda'];
  18.   trim ($terminobusqueda);
  19.   if (!$tipobusqueda || !$terminobusqueda)
  20.   {
  21.      echo "No has introducido los detalles de la busqueda.  Por favor vuelve e inténtalo de nuevo.";
  22.      exit;
  23.   }
  24.  
  25.   $tipobusqueda = addslashes($tipobusqueda);
  26.   $terminobusqueda = addslashes($terminobusqueda);
  27.  
  28.    $db = mysql_pconnect("localhost", "root", "15022010");
  29.  
  30.   if (!$db)
  31.   {
  32.      echo "Error: No se ha podido conectar a la base de datos.  Por favor, prueba de nuevo más tarde.";
  33.      exit;
  34.   }
  35.  
  36.   mysql_select_db("comuna_sucre");
  37.   $consulta = "select * from actividad where ".$tipobusqueda." like '%".$terminobusqueda."%'";
  38.   $resultado = mysql_query($consulta);
  39.  
  40.   $num_resultados = mysql_num_rows($resultado);
  41.  
  42.  
  43.   echo "<p align='center'><strong>Número de actividades para la opción indicada:<strong><font color='red'> ".$num_resultados."</font></strong></p>";
  44.   echo '<table cellpadding="0" align="center" cellspacing="0" width="100%">';
  45.     echo '<thead><tr><td>Id</td><td>Actividad</td><td>Fecha</td><td>Monto</td><td>Ver detalles</td></tr></thead>';
  46.     for ($i=0; $i<$num_resultados; $i++)
  47.     {
  48.         $fila = mysql_fetch_array($resultado);
  49.         echo '<td>'.$fila['id'].'</td>';       
  50.         echo '<td>'.$fila['actividad'].'</td>';
  51.          echo '<td>'.$fila['fecha'].'</td>';   
  52.           echo '<td>'.$fila['monto'].'</td>';
  53.            echo '<td><a target="_blank" href="reporte_actividad.php?id='.$fila['id'].'"><div align="center">ver</div></a></td></tr>';      
  54.     }
  55.     echo "</table>";
  56.  
  57. $NroRegistros=mysql_num_rows(mysql_query("SELECT * FROM actividad",$con));
  58. $PagAnt=$PagAct-1;
  59. $PagSig=$PagAct+1;
  60. $PagUlt=$NroRegistros/$RegistrosAMostrar;
  61.  
  62. //verificamos residuo para ver si llevará decimales
  63. $Res=$NroRegistros%$RegistrosAMostrar;
  64. // si hay residuo usamos funcion floor para que me
  65. // devuelva la parte entera, SIN REDONDEAR, y le sumamos
  66. // una unidad para obtener la ultima pagina
  67. if($Res>0) $PagUlt=floor($PagUlt)+1;
  68.  
  69. //desplazamiento
  70. echo "<a onclick=\"Pagina('1')\">Primero</a> ";
  71. if($PagAct>1) echo "<a onclick=\"Pagina('$PagAnt')\">Anterior</a> ";
  72. echo "<strong>Pagina ".$PagAct."/".$PagUlt."</strong>";
  73. if($PagAct<$PagUlt)  echo " <a onclick=\"Pagina('$PagSig')\">Siguiente</a> ";
  74. echo "<a onclick=\"Pagina('$PagUlt')\">Ultimo</a>";
  75. ?>
  #2 (permalink)  
Antiguo 05/11/2014, 08:04
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problemas al momento de paginar resultados con filtros

El tema es que al crear los enlaces de paginación jamás tomas en cuenta las variables de los filtro, y viceversa.

Si no combinas ambos valores de manera correcta jamás te funcionarán ambos.

Además se nota que usas una función de javascript para los enlaces, esa solución jamás permitirá lo que te acabo de mencionar.

Debes corregir tu estrategia sin usar Javascript pues solamente hace imposible avanzar.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 05/11/2014, 10:55
 
Fecha de Ingreso: julio-2013
Mensajes: 123
Antigüedad: 10 años, 9 meses
Puntos: 1
Respuesta: Problemas al momento de paginar resultados con filtros

Me comentas que el problemas esta aqui

Código PHP:
Ver original
  1. echo "<a onclick=\"Pagina('1')\">Primero</a> ";
  2. if($PagAct>1) echo "<a onclick=\"Pagina('$PagAnt')\">Anterior</a> ";
  3. echo "<strong>Pagina ".$PagAct."/".$PagUlt."</strong>";
  4. if($PagAct<$PagUlt)  echo " <a onclick=\"Pagina('$PagSig')\">Siguiente</a> ";
  5. echo "<a onclick=\"Pagina('$PagUlt')\">Ultimo</a>";
  6. ?>

pero he modificado y no logro solucionar.
  #4 (permalink)  
Antiguo 05/11/2014, 11:27
Avatar de ginitofl  
Fecha de Ingreso: diciembre-2006
Ubicación: Lima Perú
Mensajes: 349
Antigüedad: 17 años, 4 meses
Puntos: 22
Respuesta: Problemas al momento de paginar resultados con filtros

Tienes que agregar las variables de busqueda:

Código PHP:
echo "<a onclick=\"Pagina('1', '$tipobusqueda', '$terminobusqueda')\">Primero</a> ";
if(
$PagAct>1) echo "<a onclick=\"Pagina('$PagAnt', '$tipobusqueda', '$terminobusqueda')\">Anterior</a> ";
echo 
"<strong>Pagina ".$PagAct."/".$PagUlt."</strong>";
if(
$PagAct<$PagUlt)  echo " <a onclick=\"Pagina('$PagSig', '$tipobusqueda', '$terminobusqueda')\">Siguiente</a> ";
echo 
"<a onclick=\"Pagina('$PagUlt', '$tipobusqueda', '$terminobusqueda')\">Ultimo</a>"
y agrega tambien esas variables en tu javascript en la función pagina.

Saludos.

Última edición por ginitofl; 05/11/2014 a las 11:28 Razón: Corrección.
  #5 (permalink)  
Antiguo 05/11/2014, 11:43
 
Fecha de Ingreso: julio-2013
Mensajes: 123
Antigüedad: 10 años, 9 meses
Puntos: 1
Respuesta: Problemas al momento de paginar resultados con filtros

ginitofl gracias por tu respuesta, eso que me acabas de colocar como ejemplo ya lo había hecho y nada, lo que no he puesto en practica es colocar las variables en la función pagina. Lo coloco en practica y te cuento. gracias.
  #6 (permalink)  
Antiguo 05/11/2014, 11:52
 
Fecha de Ingreso: julio-2013
Mensajes: 123
Antigüedad: 10 años, 9 meses
Puntos: 1
Respuesta: Problemas al momento de paginar resultados con filtros

este el el codigo javascript

Código Javascript:
Ver original
  1. // JavaScript Document
  2. function objetoAjax(){
  3.  var xmlhttp=false;
  4.   try{
  5.    xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
  6.   }catch(e){
  7.    try {
  8.     xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
  9.    }catch(E){
  10.     xmlhttp = false;
  11.    }
  12.   }
  13.   if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
  14.    xmlhttp = new XMLHttpRequest();
  15.   }
  16.   return xmlhttp;
  17. }
  18.  
  19. function Pagina(nropagina){
  20.  //donde se mostrará los registros
  21.  divContenido = document.getElementById('contenido');
  22.  
  23.  
  24.  ajax=objetoAjax();
  25.  //uso del medoto GET
  26.  //indicamos el archivo que realizará el proceso de paginar
  27.  //junto con un valor que representa el nro de pagina
  28.  ajax.open("GET", "../../sistema/control_dinero/paginador.php?pag="+nropagina);
  29.  divContenido.innerHTML= '<img src="anim.gif">';
  30.  ajax.onreadystatechange=function() {
  31.   if (ajax.readyState==4) {
  32.    //mostrar resultados en esta capa
  33.    divContenido.innerHTML = ajax.responseText
  34.   }
  35.  }
  36.  //como hacemos uso del metodo GET
  37.  //colocamos null ya que enviamos
  38.  //el valor por la url ?pag=nropagina
  39.  ajax.send(null)
  40. }

intente hacer lo que me dijiste y nada que funciona. no se si lo estoy haciendo mal.
  #7 (permalink)  
Antiguo 05/11/2014, 13:01
Avatar de ginitofl  
Fecha de Ingreso: diciembre-2006
Ubicación: Lima Perú
Mensajes: 349
Antigüedad: 17 años, 4 meses
Puntos: 22
Respuesta: Problemas al momento de paginar resultados con filtros

Prueba asi:

Código PHP:
function Pagina(nropaginatipobusquedaterminobusqueda){
 
//donde se mostrará los registros
 
divContenido document.getElementById('contenido');
 
 
 
ajax=objetoAjax();
 
//uso del medoto GET
 //indicamos el archivo que realizará el proceso de paginar
 //junto con un valor que representa el nro de pagina
 
ajax.open("GET""../../sistema/control_dinero/paginador.php?pag="+nropagina+"&tipobusqueda="+tipobusqueda+"&terminobusqueda="+terminobusqueda);
 
divContenido.innerHTML'<img src="anim.gif">';
 
ajax.onreadystatechange=function() {
  if (
ajax.readyState==4) {
   
//mostrar resultados en esta capa
   
divContenido.innerHTML ajax.responseText
  
}
 } 
  #8 (permalink)  
Antiguo 05/11/2014, 13:14
 
Fecha de Ingreso: julio-2013
Mensajes: 123
Antigüedad: 10 años, 9 meses
Puntos: 1
Respuesta: Problemas al momento de paginar resultados con filtros

Excelente funciona al 100% gracias.

Ya habia hecho esto pero nada
Código Javascript:
Ver original
  1. unction Pagina(nropagina, tipobusqueda, terminobusqueda){
  2.  //donde se mostrará los registros
  3.  divContenido = document.getElementById('contenido')

no me había percatado de concatenar y por eso no me funcionaba
Código Javascript:
Ver original
  1. ajax.open("GET", "../../sistema/control_dinero/paginador.php?pag="+nropagina+"&tipobusqueda="+tipobusqueda+"&terminobusqueda="+terminobusqueda);

Gracias.

Etiquetas: fecha, filtros, momento, mysql, paginar, registro, resultados, 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 21:35.