Ver Mensaje Individual
  #4 (permalink)  
Antiguo 26/09/2011, 15:40
douglasroos
 
Fecha de Ingreso: agosto-2009
Mensajes: 59
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: [Problema] Como paginar datos en ajax y jquery?

genero el paginado en PHP asi

Código PHP:
Ver original
  1. $limiteRegistros = 1;
  2.  
  3. $paginaActual = $_GET["pag"];
  4. if(empty($paginaActual))
  5. {
  6.     $paginaActual = 1;
  7. }
  8.  
  9. $columnas = 4;
  10.        
  11.     echo '
  12.     <script type="text/javascript">
  13.     $(document).ready(function(){
  14.  
  15. $(\'a#vehi\').click(function(){
  16. $.fancybox.showActivity();  // Aqui la precarga pero no sale
  17. $.fancybox({
  18. \'width\'         : 730,                
  19. \'height\'        : 500,                
  20. \'autoScale\'     : false,                
  21. \'transitionIn\'  : \'elastic\',              
  22. \'transitionOut\' : \'elastic\',                          
  23. \'href\'          : this.href,
  24. \'type\'          : \'iframe\',
  25. \'opacity\'     : false,
  26. \'overlayShow\' : false
  27. });
  28. return false;
  29. });
  30. });
  31.     </script>
  32.     ';
  33. $sql = "SELECT id_publicacion FROM vehiculos WHERE id_marca = '$marca' and id_modelo = '$modelo' and ano = '$ano'";
  34. $rr = mysql_query($sql,$con);
  35.  
  36. $mostrarDesde = ($paginaActual * $limiteRegistros) - $limiteRegistros;
  37.  
  38. $myTotal = mysql_num_rows($rr);
  39.  
  40. echo'<fieldset><legend><h2>Vehículos coincidentes con tu búsqueda</h2></legend><table border="0" cellspacing="10" cellpadding="0" align="center">';
  41.     echo "<tr>";
  42.     $nCol = 1; // contador de columnas
  43.  
  44. if (mysql_num_rows($rr) == 0){
  45.    
  46.    
  47.     echo "<td><img src='imagenes/busqueda.jpg' border='0'></td>";
  48.    
  49.     }else{
  50.  
  51. while ($arreglo = mysql_fetch_array($rr)){
  52.    
  53.     $id = $arreglo["id_publicacion"];
  54.    
  55.       if ($nCol <= $columnas)
  56.       {
  57.          echo "<td>";
  58.          $sSql = "SELECT id_carro,valor,marca,modelo,ano, id_imagen,ruta FROM vehiculos,imagenes WHERE vehiculos.id_publicacion = '$id' and imagenes.id_publicacion = '$id' and imagenes.principal = '1' LIMIT $mostrarDesde , $limiteRegistros";
  59.     $rrS = mysql_query($sSql,$con);
  60.         while ($arreglo2 = mysql_fetch_array($rrS)){
  61.        
  62.         $id_carro = $arreglo2["id_carro"];
  63.         $valor = $arreglo2["valor"];
  64.         $marca_veh = $arreglo2["marca"];
  65.         $modelo_veh = $arreglo2["modelo"];
  66.         $ano = $arreglo2["ano"];
  67.         $ruta = $arreglo2["ruta"];
  68.         echo "<table border=0 align='center'>"; //Se crea una tabla dentro de la celda para mostrar los productos ordenadamente
  69.         echo "<tr>";
  70.         echo "<td><a href='vehiculo.php?id=".$id."' id='vehi'><img src=".$ruta." border='0' width='141' height='106'></a></td>"; //Idealmente se debe mostrar la imagen del producto en esta celda
  71.         echo "</tr>";
  72.         echo "<tr>";
  73.         echo "<td align='center' class='precio'>Bs.F ".$valor."</td>";
  74.         echo "</tr>";
  75.         echo "<tr>";
  76.         echo "<td align='center' class='info'>".$marca_veh."&nbsp;".$modelo_veh."&nbsp;".$ano."</td>";
  77.         echo "</tr>";
  78.         echo "</table>";
  79.         echo "</td>";
  80.         }
  81.          $nCol = $nCol + 1;
  82.          if ($nCol > $columnas)
  83.          {
  84.             $nCol = 1;
  85.             echo "</tr>"; //se cierra la fila actual
  86.             echo "<tr>"; //se abre una nueva fila          
  87.          } 
  88.       }      
  89.     } while ($arreglo=mysql_fetch_array($rr));
  90.     if ($nCol <= $columnas) //Si la condición no se cumplió en el ciclo anterior me aseguro de cerrar la Fila que quedo abierta
  91.     {
  92.        echo "</tr><tr><td>";
  93.        echo "<div align='center'>Paginas:&nbsp;";
  94. if($myTotal > $limiteRegistros)
  95. {
  96.     $numeroPaginas = ceil($myTotal / $limiteRegistros);
  97.  
  98.     for ($i = 1; $i <= $numeroPaginas; $i++)
  99.     {
  100.         if($paginaActual == $i)
  101.         {
  102.             echo " <b>$i</b> ,";
  103.         }
  104.         else
  105.         {
  106.             echo " <a href='genera_listado.php?pag=$i'>$i</a> ,";
  107.         }
  108.     }
  109. }
  110. echo '</td></tr>';
  111.     }  
  112.     echo "</table></fieldset>";
  113. }
  114. ?>

creo que la idea seria cambiando el GET por POST y hacer en jquery un evento click que seria llamado en la funcion paginado por ejemplo, entonces podria usar este codigo y hacer la paginacion

Código Javascript:
Ver original
  1. $("#paginado").click(function () {
  2.         $("#paginado option:selected").each(function () { //aqui no se que habria que cambiar.
  3.             //alert($(this).val());
  4.                 year=$(this).val();
  5.                 var model = $("#modelo").val();
  6.                 var mark = $("#marca").val();
  7.                                 var pagina = $("aqui imprimiria el numero de pagina pero no se como");
  8.                 $.post("genera_listado.php", { mark: mark , year: year , model: model }, function(data){
  9.                 $("#listado").html(data);
  10.             });        
  11.         });
  12.    })

de esta manera podria enviar por post a genera_listado.php el numero de pagina para que se realice la consulta, ese es basicamente el codigo que se me ocurre usar pero me falta pulir algunos detalles.

Si puedes ayudarme a resolver esto te lo agradeceria enormemente!