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";