Estoy trabajando una página en php y decidí agregarle ajax para mostrar los resultados de una búsqueda pero como obtengo muchos resultados pues decidí agregar paginación.
Les detallo como esta escrito mi programilla:
En un form agregué un select box y un botón que al seleccionar una opción y hacer click en un div definido más abajo me aparecen los resultados.
El div llama a un archivo que es el que genera todos los resultados pero si quiero ver más resultados al hacer click en el símbolo ">" me redirecciona al otro archivo despareciendo el formulario.
Aquí mi código:
Código:
Y acá este el archivo prueba.phpesta es el script de ajax de la página que contiene el form <script language = "javascript"> var XMLHttpRequestObject = false; if (window.XMLHttpRequest) { XMLHttpRequestObject = new XMLHttpRequest(); } else if (window.ActiveXObject) { XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP"); } function getData(dataSource, divID, entidad) { if(XMLHttpRequestObject) { var obj = document.getElementById(divID); dataSource= dataSource+"?entidad="+entidad; alert(entidad); //alert(nombreEscuela); //alert(dataSource); XMLHttpRequestObject.open ("GET", dataSource); XMLHttpRequestObject.onreadystatechange = function() { if (XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200) { obj.innerHTML = XMLHttpRequestObject.responseText; } else if (XMLHttpRequestObject.readyState == 1 ) { obj.innerHTML = '<div align="center"> <img loop="-1" align="middle" src="img/barraProgreso.gif"> <br>Cargando..</div> '; } } XMLHttpRequestObject.send(null); } } </script> . . . <form action="" method="get" name="file" id="file" target="_self" > <div align="center"> <select name="filtroEstado" id="filtroEstado" size="1" > <option value="todo"<? if ($fE=="todo") echo "selected=\"selected\""; ?>>Toda la república</option> <option value="01" <? if ($fE=="01") echo "selected=\"selected\""; ?> . . . . </select> <input type="button" value="Buscar" onclick="getData('prueba.php','contInfo' ,document.getElementById('filtroEstado').value)" /> </div> <p align="center"> </form> este es el div donde se carga el archivo prueba.php <div id="contInfo" align="center"></div> </body> </html>
Código:
Como puedo hacer funcionar la paginación en la misma página donde esta el form.<body> <div id="contTabla" > <? if(!isset($_GET['pag'])){ //Si la Variable Pag no esta en la URL, la setea en por defecto Primera Pagina $pag=1; $entidad=$_GET['entidad']; } else{ /* De lo contrario la Variable de Sistema $_GET captura la variable pasada por la Url 'pag' y la asiga la Asigna a la Variable $pag */ $pag=$_GET['pag']; } $hasta=10; // Se elige la cantidad de registros mostrados por pagina $desde=($hasta*$pag)-$hasta; echo $desde ."-". $hasta; include ("comun/conexion.php"); . . . . ?> <table width="100%"> <tr> <th width="45%">Datos Escuela</th> <th width="28%">Antes</th> <th width="27%">Después</th> </tr> <!--php --> <? $var =1; $contGlobal = 1; $contGlobal2 = 2; while( $row = mysql_fetch_array( $result ) ){ set_time_limit(0); ?> <tr> <td valign="middle" align="left"> ENTIDAD: <? if($row['nom_ent']==""){echo "No disponible";} else echo $row['nom_ent'] ?><br> MUNICIPIO: <? if($row['nom_mun']==""){echo "No disponible";} else echo $row['nom_mun'] ?><br> LOCALIDAD: <? if($row['localidad']==""){echo "No disponible";} else echo $row['localidad'] ?><br> ESCUELA: <? if($row['nom_cct']==""){echo "No disponible";} else echo $row['nom_cct']?><br> CCT: <? if($row['cct']==""){echo "No disponible";} else echo $row['cct']?> </td> <td> <div id="samples-wrapper"> <div class="thumbwrapper"> <div class="highslide-gallery"> <? echo $var; $directory = 'images/escuelasAtendidas/fotoscct/'; $mini = 'images/escuelasAtendidas/miniatura/'; //trailing slash $wtlf = $row['cct'].'A'; //$wtlf = $clave.'a'; //what to look for //$wtlfb = $row['cct'].'B'; $int =1; //$int2 = 1; //====== // Snippet //====== $flag = false; if( file_exists( $directory . $wtlf. $int . '.JPG' ) ){ echo '<a id="thumb'.$contGlobal.'" href="images/escuelasAtendidas/fotoscct/'.$wtlf.$int.'.JPG" class="highslide" onclick="return hs.expand(this, { slideshowGroup: '.$contGlobal.'} )"> <img src="images/escuelasAtendidas/miniatura/'.$wtlf.$int.'.JPG" alt="Highslide JS" title="aaaa" height="120" width="100" /> </a> '; $var++; echo $var; $int+=1; while (file_exists ( $directory . $wtlf. $int . '.JPG')) { //$flag = true; //$name = $wtlf . $int .'.JPG'; //echo $name; echo '<div class="hidden-container"> <a href="images/escuelasAtendidas/fotoscct/'.$wtlf.$int.'.JPG" class="highslide" onclick="return hs.expand(this, { thumbnailId: \'thumb'.$contGlobal.'\' , slideshowGroup: '.$contGlobal.' })"></a>'; $int+=1 ; } echo '</div>'; } else echo 'Fotos no disponibles.'; ?> </div> </div> </div> </td> <td> <div id="samples-wrapper"> <div class="thumbwrapper"> <div class="highslide-gallery"> <? echo $var; $directory = 'images/escuelasAtendidas/fotoscct/'; $mini = 'images/escuelasAtendidas/miniatura/'; //trailing slash //$wtlf = $row['cct'].'A'; //$wtlf = $clave.'a'; //what to look for $wtlfb = $row['cct'].'B'; $int =1; //$int2 = 1; //====== // Snippet //====== $flag = false; if( file_exists( $directory . $wtlfb. $int . '.JPG' ) ){ echo '<a id="thumb'.$contGlobal2.'" href="images/escuelasAtendidas/fotoscct/'.$wtlfb.$int.'.JPG" class="highslide" onclick="return hs.expand(this, { slideshowGroup: '.$contGlobal2.'} )"> <img src="images/escuelasAtendidas/miniatura/'.$wtlfb.$int.'.JPG" alt="Highslide JS" title="aaaa" height="120" width="100" /> </a> '; $var++; echo $var; $int+=1; while (file_exists ( $directory . $wtlfb. $int . '.JPG')) { //$flag = true; //$name = $wtlf . $int .'.JPG'; //echo $name; echo '<div class="hidden-container"> <a href="images/escuelasAtendidas/fotoscct/'.$wtlfb.$int.'.JPG" class="highslide" onclick="return hs.expand(this, { thumbnailId: \'thumb'.$contGlobal2.'\', slideshowGroup: '.$contGlobal2.' })"></a>'; $int+=1 ; } echo '</div>'; } else echo 'Fotos no disponibles.'; ?> </div> </div> </div> </td><? $contGlobal=$contGlobal+2; $contGlobal2=$contGlobal2+2; $var++;}?> </tr> <!--php end --> </table> <? aquí comienza la paginación //Se consulta la cantidad de registros, para mostrar la cantidad ed paginas por imprimir $todo=mysql_query($cadena2,$conexion); $r2=mysql_fetch_row($todo); if($r2[0]==0){ echo" No se encontraron Coincidencias"; } else{ echo" $r2[0] Coincidencias"; } $paginas=ceil($r2[0]/$hasta); /* 3.- Se imprime un Mensaje "PAGINA [X] DE [Y]", pero puede ser como uno quiera q este emsaje aparesca, o simplememnte se pude anular, pero es buena ida decir al visitante cuantas paginas arroja su consulta, ya sea en un Buscador en un curso, en un albun de musica, en cualquier tipo de paginacion q se necesite mostrar */ /* 3.- Se imprime un Mensaje "PAGINA [X] DE [Y]", pero puede ser como uno quiera q este emsaje aparesca, o simplememnte se pude anular, pero es buena ida decir al visitante cuantas paginas arroja su consulta, ya sea en un Buscador en un curso, en un albun de musica, en cualquier tipo de paginacion q se necesite mostrar */ ?> <? echo "<br>Página [".$pag."] de [".$paginas."]<br>"; /* 4.- Se Crea el Mensaje Atras, Index, Adelante * con "|<" se vuelve a la primera pagian ($pag=1) * con "<<" se retrocede una pagina ($pag=$pag-1) * con "index" se retorna a al pagian principal de nustro sitio, o a la pagian q se indique * con ">>" se adelanta una pagina ($pag=$pag+1) * con ">|" se avanza hasta a ultima pagina ($pag=$paginas) */ //$cctt=$_GET['cctt']; //$turno=$_GET['turno']; //&qA=".qA."&qCiclo=".$qCiclo." if($pag>1){ echo "<a href=\"prueba.php?pag=1&entidad=".($entidad)."\">|<</a> | "; echo "<a href=\"prueba.php?pag=".($pag-1)." &entidad=".($entidad)."\"><<</a> | "; } if($pag<$paginas){ echo "<a href=\"prueba.php?pag= ".($pag+1)."&entidad=".($entidad)."\" >>></a> | "; echo "<a href=\"prueba.php?pag= ".($paginas)."&entidad=".($entidad)."\">>|</a>"; } /* Por ultimo se libera la Base de datos y se imprime en pantalla y se obtiene un resultado */ mysql_free_result($todo); //include ("../comun/cerrarbd.php"); ?> </div> </body> </html>
Lo que pienso hacer es:
Llamemos a la página que tiene el form "index", a la que muestra resultados "paginador".
En index esta el div que carga los primeros resultados de paginador y si doy click para ver más resultados en el link ">" que esta dentro de paginador me envia a otra págian por esto:
Código:
Pero debería ser en el mismo index.echo "<a href=\"prueba.php?pag=1&entidad=".($entidad)."\">|<</a> | ";
Alguien sabe como puedo solucionar esto?