1 votos

Paginador PHP/JQuery/MySQLi

Buenos días: Resulta que tengo un problema con un paginador que me he estado montando, pero este no funciona. Simplemente no muestra ningún error (y las sentencias SQL están bien definidas, o eso creo, demasiadas horas delante de este código). Les adjunto el código php y el jquery y espero que me podéis echar una mano. Gracias de antemano!

PHP

<?php 
                if(isset($_GET['geo-lat']) && isset($_GET['geo-lng'])){
                    $lat=$_GET['geo-lat'];
                    $lng=$_GET['geo-lng'];
                    $cont="SELECT * from plots WHERE idParc=(SELECT idParc FROM parques WHERE Coordenadas='".$lat.",".$lng."');";
                    $conexion=conexion();
                    if($contador = $conexion->query($cont)){
                        $fila = mysqli_num_rows($contador);
                    }
                    desconexion($conexion);
                    if($num_servicios>0){
                        $rowsPage=10;
                        $pageN=1;
                        if(isset($_GET['page'])){
                            $pageN=$_GET['page'];
                        }
                        $offset = ($pageN-1)*$rowsPage;
                        $total = ceil($num_plots / $rowsPage);
                        $sql="  SELECT nomEmpr, Direccion, Familia, Telf, Fax, url 
                                FROM plots
                                WHERE idParc=(SELECT idParc FROM parques WHERE Coordenadas='".$lat.",".$lng."')
                                ORDER BY nomEmpr ASC
                                LIMIT ".$offset.",".$rowsPage.";";

                        echo '<table><tr><td>Nombre</td><td>Direccion</td><td>Clase</td><td>Telf. Contacto</td><td>Fax. Contacto</td></tr>';
                        $conexion=conexion();
                        if($result=$conexion->query($sql)){
                            while($fila=mysqli_fetch_array($result)){
                                for($x=0;$x<5;$x++)
                                    echo "<td>".$fila[$x]."</td>";
                                if($fila[5]!="")
                                    echo "<td><a onclick=window.open('".$fila[5]."')>Web</a></td></tr>";
                                else echo "</tr>";
                            }
                        }
                        echo "</tr></table>";
                        desconexion($conexion);
                        if($total>1){
                            echo '<div class="paginate">';
                            echo '<ul>';
                            if($pageN != 1)
                                echo '<li><a data="'.($pageN-1).'">Anterior</a></li>';

                            for ($i=1;$i<=$total;$i++) {
                                if ($pageN == $i)
                                    echo '<li><a>'.$i.'</a></li>';
                                else
                                    echo '<li><a data="'.$i.'">'.$i.'</a></li>';
                            }
                            if ($pageN != $total)
                                echo '<li><a data="'.($pageN+1).'">Siguiente</a></li>';
                            echo '</ul>';
                            echo '</div>';
                        }
                    }
                }
                ?>

jQuery

jQuery(document).ready(function($) {    
            $('.paginate').live('click', function(){
                var page = $(this).attr('data');        
                var dataString = 'page='+page;
                $.ajax({
                    type: "GET",
                    url: "index.php",
                    data: dataString,
                    success: function(data) {
                        $('#content2').fadeIn(1000).html(data);
                    }
                });
            });              
        });

0 votos

¿Puedes dar mas detalles? ¿Que devuelve la petición AJAX? ¿llegan los parámetros al otro lado correctamente? Prueba a no usar rutas relativas en la petición AJAX, sino a poner /index.php

1 votos

Claro! La petición ajax lo que hace es recibir la pagina a la cual se le ha dado en la barra del pagindador (en la parte de abajo del php, donde esta el div paginate) y ejecuta de nuevo la consulta con el parámetro nuevo para que el div donde se encuentre el php se ejecute de nuevo mostrando los campos (en el div solo esta el php, así que no hay problema). Los parámetros supongo que llegan bien, ya que he probado de poner console.log() con las variables y se muestran. Y lo de las rutas relativas lo voy a probar. Gracias por perder el rato con el código!

1voto

Moisés AC Puntos 530

Hola, yo hice un páginador PHP con POO hace unos meses. http://mac-mix.blogspot.com.es/2015/10/php-poo-paginador-de-resultados.html Las rutas pueden variar en el momento de la implementación. En mi caso veo si están correctas cuando aparecen los botones. Te recomiendo dos cosas:

  • Que vayas haciendo debug en el lado del servidor desde el principio a ver donde falla.
  • Probar las consultas en alguna utilidad como MySql, a veces nos fallan por unas comillas en un parámetros o cosas que no son fáciles de encontrar.

Simplificar es la mejor forma de aislar un problema. Un saludo.

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by: