PHP - Paginación desde una función

   
Vista:

Paginación desde una función

Publicado por Jose Manuel (2 intervenciones) el 01/12/2011 10:30:47
Hola, tengo un problema con la paginación de consultas, tengo una página en la que tiene 3 div:

1
2
3
4
5
6
bar001_buscador.php
<div class="container">
    <div class="header">   <img src="img/microfono.gif"  /> </div>
    <div class="sidebar1"> aqui tengo un buscador, con <input type="submit" name="boton" value="BUSCAR" /></div>
    <div class="content">  <?php if (isset($_POST['boton'])) { buscar_bares(); } ?> <br></div>
</div>


Al pulsar en el botón BUSCAR,

1
<div class="content">  <?php if (isset($_POST['boton'])) { buscar_bares(); } ?> <br></div>


se muestran los datos correctamente, en el CONTENT, pero cuando en el paginador pulso siguiente pagina, desaparece todo lo que hay en CONTENT y no muestra nada.

He hecho la prueba, enviando la consulta a una pagina nueva, por ejemplo bar002_tabla.php y funciona correctamente, por lo que deduzco, que el problema está en que la consulta se llama desde una función.

Aquí pongo parte del código que utilizo para la consulta (ya digo que la consulta va bien, si desde el FORM del buscador, llamo a una nueva pagina, pero no funciona cuando quiero que la información se muestre en la misma pagina que estoy viendo, en el CONTENT:

Esta función está dentro bar001_buscador.php

1
2
3
function buscar_bares (){
.
   <a href="bar001_buscador.php?page=<? echo $nextpage;?>" >Siguiente &raquo;</a>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve

Paginación desde una función

Publicado por xve (5515 intervenciones) el 02/12/2011 10:45:42
Hola Jose, por lo que veo, creo que el problema esta en que cuando le das a siguiente, no pasas la variable $_POST['boton'], sino que pasas la variable $_GET["page"]...
En la linea:
1
<?php if (isset($_POST['boton'])) { buscar_bares(); } ?>

Solo muestras la opción de buscar si $_POST['boton'] esta declarada y no es null, pero cuando vienes del click en siguiente, este valor no existe.

No se si me he explicado bien... coméntame, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Paginación desde una función

Publicado por Jose Manuel (2 intervenciones) el 02/12/2011 13:23:01
Gracias por contestar, pero no se como hacer lo que me sugieres. Tal vez colocando este código, pero dónde?

1
2
3
4
if(isset($_GET['page'])){
    $page= $_GET['page'];
    }else{
    $page=1;}



Yo llamo a la función con esta instrucción:

1
<?php if (isset($_POST['boton'])) { buscar_bares(); } ?> <br>


Parte del codigo de la funcion
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
function buscar_bares (){
include("conecta_mysql.php");
 
//AL PRINCIPIO COMPRUEBO SI HICIERON CLICK EN ALGUNA PÁGINA 
if(isset($_GET['page'])){
    $page= $_GET['page'];
}else{ //SI NO DIGO Q ES LA PRIMERA PÁGINA
    $page=1;
}
...............
.. Aqui van varias lineas .
.. Aqui se muestra el contenido de la consulta
............
 
//UNA VEZ Q MUESTRO LOS DATOS TENGO Q MOSTRAR EL BLOQUE DE PAGINACIÓN SIEMPRE Y CUANDO HAYA MÁS DE UNA PÁGINA
if($num_rows != 0){
   $nextpage= $page +1;
   $prevpage= $page -1;
?><ul id="pagination-clean"><?
//SI ES LA PRIMERA PÁGINA DESHABILITO EL BOTON DE PREVIOUS, MUESTRO EL 1 COMO ACTIVO Y MUESTRO EL RESTO DE PÁGINAS
 if ($page == 1) {
 	?>
      <li class="previous-off">&laquo; Anterior</li>
      <li class="active">1</li> <?
	for($i= $page+1; $i<= $lastpage ; $i++){?>
			<li><a href="bar001_buscador.php?page=<? echo $i;?>"><? echo $i;?></a></li>
 <? }
       //Y SI LA ULTIMA PÁGINA ES MAYOR QUE LA ACTUAL MUESTRO EL BOTON NEXT O LO DESHABILITO
	if($lastpage >$page ){?>
      <li class="next"><a href="bar001_buscador.php?page=<? echo $nextpage;?>" >Siguiente_a &raquo;</a></li><?
	}else{?>
	  <li class="next-off">Next &raquo;</li>
<?	}
 } else {
//EN CAMBIO SI NO ESTAMOS EN LA PÁGINA UNO HABILITO EL BOTON DE PREVIUS Y MUESTRO LAS DEMÁS
	?>
    <ul id="pagination-clean">;
	 <li class="previous"><a href="bar001_buscador.php?page=<? echo $prevpage;?>"  >&laquo; Anterior</a></li><?
      for($i= 1; $i<= $lastpage ; $i++){
                       //COMPRUEBO SI ES LA PÁGINA ACTIVA O NO
	  		if($page == $i){
		?>	<li class="active"><? echo $i;?></li><?
			}else{
		?>	<li><a href="bar001_buscador.php?page=<? echo $i;?>" ><? echo $i;?></a></li><?
			}
	  }
         //Y SI NO ES LA ÚLTIMA PÁGINA ACTIVO EL BOTON NEXT		
	  if($lastpage >$page ){	?>
      <li class="next"><a href="bar001_buscador.php?page=<? echo $nextpage;?>">Siguiente_b &raquo;</a></li><?
	  }else{
	?> <li class="next-off">Siguiente_c &raquo;</li><?
	  }
 }
?></ul></div><?
---- etc
--- etc
---- etc
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Paginación desde una función

Publicado por Jaime Ortiz (1 intervención) el 12/12/2011 17:17:19
Hola José Manuel, por qué no hechas un vistazo a kpaginate, es una excelente clase para paginaciones, te dejo acá el enlace: paginación php

Espero que te sirva.
Saludos!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar