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.

Otras Preguntas y Respuestas


...

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

Conecta