entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

1voto

Error de paginación, en el div del contenido carga mi pagina

Hola, estoy teniendo problemas en la paginacion de mi web.Espero su ayuda...

Al momento de ir a una pagina en el div donde debería de cargar el contenido de la pagina carga toda mi pagina y dentro del el recién pagina.
Quisiera saber como puedo hacer que solo el div que tiene el contenido cargue dentro de ese div que mostrara.

Aquí les dejo mi código.

Este es la función que pagina (forma parte de section.php)

<?php
    function paginate($page, $tpages, $adjacents) {
        $prevlabel = "‹ Anterior";
        $nextlabel = "Siguiente ›";
        $out = '<nav aria-label="Page navigation"> <ul class="pagination justify-content-center">';

        // Anterior label
        if($page==1) {
            $out.= "<li class='disabled page-item'><span><a class='page-link'>$prevlabel</a></span></li>";
        } else if($page==2) {
            $out.= "<li><span><a class='page-link' href='javascript:void(0);' onclick='load(1)'>$prevlabel</a></span></li>";
        }else {
            $out.= "<li><span><a class='page-link' href='javascript:void(0);' onclick='load(".($page-1).")'>$prevlabel</a></span></li>";

        }

        // Primer label
        if($page>($adjacents+1)) {
            $out.= "<li><a class='page-link' href='javascript:void(0);' onclick='load(1)'>1</a></li>";
        }
        // Intervalo
        if($page>($adjacents+2)) {
            $out.= "<li><a class='page-link' >...</a></li>";
        }

        // Pagina
        $pmin = ($page>$adjacents) ? ($page-$adjacents) : 1;
        $pmax = ($page<($tpages-$adjacents)) ? ($page+$adjacents) : $tpages;
        for($i=$pmin; $i<=$pmax; $i++) {
            if($i==$page) {
                $out.= "<li class='page-item active'><a class='page-link'>$i</a></li>";
            }else if($i==1) {
                $out.= "<li><a class='page-link' href='javascript:void(0);' onclick='load(1)'>$i</a></li>";
            }else {
                $out.= "<li><a class='page-link' href='javascript:void(0);' onclick='load(".$i.")'>$i</a></li>";
            }
        }

        // Intervalo
        if($page<($tpages-$adjacents-1)) {
            $out.= "<li><a class='page-link'>...</a></li>";
        }

        // Ultimo
        if($page<($tpages-$adjacents)) {
            $out.= "<li><a class='page-link' href='javascript:void(0);' onclick='load($tpages)'>$tpages</a></li>";
        }

        // Siguiente
        if($page<$tpages) {
            $out.= "<li><span><a class='page-link' href='javascript:void(0);' onclick='load(".($page+1).")'>$nextlabel</a></span></li>";
        }else {
            $out.= "<li class='disabled'><span><a class='page-link'>$nextlabel</a></span></li>";
        }
        $out.= "</ul></nav>";
        return $out;
    }
?>    

El Script que carga elcontenido en el div contenedor (forma parte de section2.php)

    <script>
    function load(page){
        var parametros = {"action":"ajax","page":page};
        $.ajax({
            url: location.href,
            data: parametros,
            success:function(data){
                $(".contenedor").html(data).fadeIn('fast');
            }
        })
    }
    </script>

Aqui esta todo el contenido que debe de aparecer en el div contenedor (forma parte de content.php)

            <div class="contenedor">
                <div class="row pagesection">
                    <?php
                    foreach ($this->var->list_thesis->data as $key => $thesis) {
                        $img_user = $index->crypt->enc($thesis->idusuario . $thesis->apellido);
                        ?>
                        <div class="col-md-6 col-lg-3 d-flex justify-content-md-center pb-5">
                            <div class="content-thesis mx-auto">
                                <!--Aqui va el contenido de extraidode la bd -->
                            </div>
                        </div>
                        <?php
                    }
                    ?>
                    <div class="pagination justify-content-center">
                        <?php echo paginate($page, $total_pages, $adjacents);?>
                        <!--Llama a la funcion pagination y pargalos botones de la paginacion -->
                    </div>
                </div>
            </div>

Aquí el controlador donde se encuentran las variables de la paginacion como elementos por pagina, numero de paginas, total de elementos.

        $page = (isset($_REQUEST['page']) && !empty($_REQUEST['page']))?$_REQUEST['page']:1;
        $per_page = 20; //la cantidad de registros que desea mostrar (limit)
        $adjacents  = 5; //brecha entre páginas después de varios adyacentes
        $offset = ($page - 1) * $per_page; //offset
        $this->var->contadorall = $this->thesis->counttesis($this->where);
        $totaltesis = count($this->var->contadorall->data);//Cantidad de elementos en la tabla tesis

        $total_pages = ceil($totaltesis/$per_page);//Total de paginas
         echo "<center>Tesis:$totaltesis || Paginas:$total_pages || Offset:$offset</center>";
         //Esto solo es paraprobar si la paginación va bien

         //Este If no es necesario
        if ($totaltesis>0){
        //echo $total_pages +1;
        } else {
          echo  "<div class='alert alert-warning alert-dismissable'>
              <button type='button' class='close' data-dismiss='alert' aria-hidden='true'>×</button>
              <h4>No se encontraron tesis</h4> Vuelva a intentar
            </div>";
        }

        $this->var->list_thesis = $this->thesis->searchThesis($this->where,$offset, $per_page);
        $this->var->count_grade = $this->thesis->countForGrade($this->where);
        $this->var->count_instit = $this->thesis->countForInstitution($this->where);
        $this->var->count_career = $this->thesis->countForCarrer($this->where);
        $this->var->count_lang = $this->thesis->countForLanguage($this->where);
        $this->var->count_type = $this->thesis->countForType($this->where);

        //Armando la pagina
        require_once "view/head.php";
        require_once "view/header.php";
        require_once "view/section.php";//se encuentra la fioncion paginate
        require_once "view/content.php";//Carga los elementos y botones de paginacion
        require_once "view/section2.php";//carga elajax
        require_once "view/footer.php";
        require_once "view/foot.php";

Por favor, accede o regístrate para responder a esta pregunta.

¿Conoces alguien que puede responder?
¡Comparte esta pregunta!


Otras Preguntas y Respuestas


Actividad Reciente

  • rach ganó una medalla hace 22 horas

    Buena Pregunta - Recibió +1 votos en pregunta
  • Vivi ganó una medalla hace 6 días

    Club de los 100 - Recibió un total de 100 puntos
  • kevin1998 ganó una medalla Dic 6

    Club de los 100 - Recibió un total de 100 puntos
  • Toren23 ganó una medalla Dic 6

    Fotogénico - Subió un avatar
  • Toren23 ganó una medalla Dic 6

    Club de los 100 - Recibió un total de 100 puntos
  • jextrada ganó una medalla Dic 6

    Club de los 100 - Recibió un total de 100 puntos
  • jvelasquez7 ganó una medalla Dic 5

    Club de los 100 - Recibió un total de 100 puntos
  • Azael ganó una medalla Dic 5

    Club de los 100 - Recibió un total de 100 puntos
  • nelsonamaya ganó una medalla Dic 5

    Fotogénico - Subió un avatar
...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta