fox_hound 0 Denunciar post Postado Junho 6, 2008 Pessoal, sou novo aqui no fórum e gostaria de compartilhar com vcs um sistema de paginação interessante que alia o script funcional do Paginator http://jpinedo.webcindario.com/scripts/paginator/ , com a rapidez do Ajax, espero aprender muito com vcs aqui e ajudar na maneira do possivel. Neste tópico precisaremos de um conhecimento basico de cada coisa: um pouco de PHP, Mysql Javascript, Ajax, Html e até CSS, primeiro vamos criar nossa tabela de clientes para fazer os teste e inserir dados ficticios, abaixo segue o script: CREATE TABLE `clientes` ( `id` int(11) NOT NULL auto_increment, `nome` varchar(60) default NULL, `sobrenome` varchar(60) default NULL, `fone` varchar(10) default NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM; insert into `clientes`(`id`,`nome`,`sobrenome`,`fone`) values (1,'joão','sousa','1111111111'); insert into `clientes`(`id`,`nome`,`sobrenome`,`fone`) values (2,'maria','silva','2222222222'); insert into `clientes`(`id`,`nome`,`sobrenome`,`fone`) values (3,'francisco','assis','3333333333'); insert into `clientes`(`id`,`nome`,`sobrenome`,`fone`) values (4,'josé','ribeiro','4444444444'); insert into `clientes`(`id`,`nome`,`sobrenome`,`fone`) values (5,'raimundo','soares','5555555555'); insert into `clientes`(`id`,`nome`,`sobrenome`,`fone`) values (6,'marta','sá','6666666666'); insert into `clientes`(`id`,`nome`,`sobrenome`,`fone`) values (7,'regina','carvalho','7777777777'); insert into `clientes`(`id`,`nome`,`sobrenome`,`fone`) values (8,'alberto','duarte','8888888888'); insert into `clientes`(`id`,`nome`,`sobrenome`,`fone`) values (9,'joana','souza','9999999999'); insert into `clientes`(`id`,`nome`,`sobrenome`,`fone`) values (10,'marina','diniz','1234567891'); insert into `clientes`(`id`,`nome`,`sobrenome`,`fone`) values (11,'miguel','alves','9876543219'); insert into `clientes`(`id`,`nome`,`sobrenome`,`fone`) values (12,'joaquim','ferreira','1122334455'); insert into `clientes`(`id`,`nome`,`sobrenome`,`fone`) values (13,'carlos','jr','9988774455'); insert into `clientes`(`id`,`nome`,`sobrenome`,`fone`) values (14,'danilo','almeida','4567891235'); Agora, precisamos do script que faz o Ajax funcionar atraves do XMLHttpRequest, chamaremos este arquivo de script.js , eis o código: function ajax(url) { req = null; if (window.XMLHttpRequest) { req = new XMLHttpRequest(); req.onreadystatechange = processReqChange; req.open("GET",url,true); req.send(null); } else if (window.ActiveXObject) { req = new ActiveXObject("Microsoft.XMLHTTP"); if (req) { req.onreadystatechange = processReqChange; req.open("GET",url,true); req.send(); } } } function processReqChange() { if (req.readyState == 1) { document.getElementById('pagina').innerHTML = 'Carregando, por favor aguarde...'; } else if (req.readyState == 4) { if (req.status ==200) { document.getElementById('pagina').innerHTML = req.responseText; } else { alert("Houve um problema ao obter os dados:n" + req.statusText); } } } Vamos agora para o arquivo index.php <html> <head> <title>..::Paginação com ajax::..</title> <style> .paginacao{ font-family:Verdana, Arial, Helvetica, sans-serif; font-size: 10px; cursor: pointer; } </style> <script src="script.js"></script> <script> function pesquisa(pag) { url="busca.php?_pagi_pg="+pag; ajax(url); } </script> </head> <body onLoad="pesquisa(1)"> <div id="pagina"></div> </body>Neste arquivo, criei um pequeno trecho de CSS para deixa o texto da paginação mais legal, inclui tb o nosso script.js, responsavel pelo ajax e criei a função que irá buscar os dados no nosso arquivo busca.php , que segue: <?php header("Content-Type: text/html; charset=ISO-8859-1",true); $conn = mysql_connect("seu_servidor","seu_usuario","sua_senha") or die ("Erro na conexão com servidor"); $db = mysql_select_db("seu_banco",$conn) or die ("Erro na seleção do banco"); //Sentença sql, não use limit aqui, o script de paginação irá tratar para você $_pagi_sql = "SELECT nome, sobrenome, fone FROM clientes order by nome"; //Estas variaveis são opcionais $_pagi_cuantos = 5; //quantidade de registros por pagina $_pagi_nav_anterior = "anterior"; //string para anterior $_pagi_nav_siguiente = "seguinte"; //string para seguinte $_pagi_nav_primera = "primeira"; //string para primeira $_pagi_nav_ultima = "última"; //string para última $_pagi_nav_estilo = "paginacao"; //aqui é a classe do CSS para a barra de paginação //requeremos o arquivo que realiza todo o processo de paginação require("paginator.inc.php"); //criamos uma tabela para organizar um pouco mais os dados, os adeptos do tableless que me perdoe rsrsr echo "<table border=\"0\" cellpadding=\"3\" cellspacing=\"3\">"; echo "<tr bgcolor=\"#DDDDDD\"><th>Nome</th><th>Sobrenome</th><th>Fone</th>"; while($l = mysql_fetch_array($_pagi_result)){ $nome = ucfirst($l[0]); $sobrenome = ucfirst($l[1]); $fone = ucfirst($l[2]); echo "<tr bgcolor=\"#EEEEEE\"><td>$nome</td><td>$sobrenome</td><td>$fone</td>"; } echo "</table>"; //incluimos a paginação echo"<p>".$_pagi_navegacion."</p>"; ?> Por ultimo o paginator paginator.inc.php <?php /* **----------------------------No Borrar esta sección ------------------------- ** Paginator ** Paginación de resultados de consultas a MySql con PHP ** ** Versión 1.6.3 ** ** Nombre de archivo : ** paginator.inc.php ** ** Autor : ** Jorge Pinedo Rosas (jpinedo) <jorpinedo@yahoo.es> ** Con la colaboración de los usuarios del foro de PHP de www.forosdelweb.com ** Especialmente de dooky que posteó el código en el que se basa este script. ** ** Descripción : ** Devuelve el resultado de una consulta sql por páginas, así como los enlaces de navegación respectivos. ** Este script ha sido pensado con fines didácticos, por eso la gran cantidad de comentarios. ** ** Licencia : ** GPL con las siguientes extensiones: ** *Uselo con el fin que quiera (personal o lucrativo). ** *Si encuentra el código de utilidad y lo usa, mandeme un mail si lo desea o deje un comentario en la página ** de documentación. ** *Si mejora el código o encuentra errores, hagamelo saber al mail indicado o deje un comentario en la página ** de documentación. ** ** Documentación y ejemplo de uso: ** http://jpinedo.webcindario.com **----------------------------------------------------------------------*/ /*---------------------------------------------------------------------- ** Historial: ** ** Versión 1.0.0 (30/11/2003): -Versión inicial. ** Versión 1.1.0 (12/01/2004): -Se agregó la propagación de las variables que llegan al script vía url ($_GET) ** en los enlaces de navegación por las páginas. ** -Se optimizó el conteo del total de registros utilizando el COUNT(*) de MySql. ** Versión 1.3.0 (10/08/2004): -Se agregó la opción de limitar el número enlaces que se mostrarán en la barra ** de navegación. Gracias a la recomendación de Jorge Camargo (andinistas) ** -Se agregó la opción de elegir si se quiere mostrar los mensajes de error de mysql. ** -Se agregó la generación de información de la página actual en una cadena que contiene ** el total de registros de la consulta y el primer y último registro de la página actual. ** Versión 1.4.0 (12/08/2004): -Se agregó la opción de elegir qué variables se quiere propagar por url. Se ha utilizado ** la misma forma de hacerlo que utiliza la Clase Paginado de webstudio. ** (http://www.forosdelweb.com/showthread.php?t=65528).'>http://www.forosdelweb.com/showthread.php?t=65528). Gracias a la acalmación popular :) ** Versión 1.4.1 (06/09/2004): -Corregido el bug en la propagación de variables por GET al renombrar la variable ** "pg" por "_pagi_pg". Esto sólo ocurre en la versión 1.4. Gracias a jean pierre m. por ** reportar el bug. ** Versión 1.5.0 (03/11/2004): -Se agregó la opción de elegir si se hace el conteo desde mySQL (COUNT(*)) o desde PHP (mysql_num_rows()). ** Esta es una de las modificaciones más importantes porque gracias a esto, ahora el script funciona para ** cualquier tipo de consulta, corrigiendo una de sus principales limitaciones. Gracias a César (CDs) por ** sus ganas de colaborar y su paciencia. ** Versión 1.5.1 (16/11/2004): -Se cambió el nombre de las variables $desde y $hasta por $_pagi_desde y $_pagi_hasta para mantener ** uniformidad y evitar conflictos. ** Versión 1.5.2 (15/02/2005): -Se cambió preventivamente el uso del array $GLOBALS por el array $_REQUEST con la intención de que ** funcione con la directiva register globals en Off. Gracias a Lorena Casas por su colaboración en la detección de ** este bug y en las pruebas. ** Versión 1.6.0 (08/03/2005): -Se reestructuró toda la parte de propagación reincluyendo el array $GLOBALS para poder propagar variables ** generadas en el ámbito del script. ** -Se incluyó la opción de elegir un estilo CSS para los enlaces de la barra de navegación. ** -Se incluyó la opción de personalizar los enlaces a la página anterior y a la siguiente. (Inspirado en la clase Paginador de WebStudio) ** Versión 1.6.1 (07/05/2005): -Corregido el bug que multiplicaba la variable _pagi_pg en el URL cuando se propaga automáticamente ** el array $_GET. ** Versión 1.6.2 (21/10/2005): -Se incluyeron los enlaces a la página primera y a la última. ** -Se incluyó la opción de personalizar los enlaces a la página primera y a la última. ** Versión 1.6.3 (22/02/2006): -Corregida la expresión regular para que reconozca los saltos de línea y tabulaciones como espacio en blanco. ** Gracias a El_Condor en forosdelweb por reportar el comportamiento indeseado. ** **-----------------------------------------------------------------------------------------------------------*/ /** * Variables que se pueden definir antes de incluir el script vía include(): * ------------------------------------------------------------------------ * $_pagi_sql OBLIGATORIA. Cadena. Debe contener una sentencia sql válida (y sin la cláusula "limit"). * $_pagi_cuantos OPCIONAL. Entero. Cantidad de registros que contendrá como máximo cada página. Por defecto está en 20. * $_pagi_nav_num_enlaces OPCIONAL Entero. Cantidad de enlaces a los números de página que se mostrarán como máximo en la barra de navegación. Por defecto se muestran todos. * $_pagi_mostrar_errores OPCIONAL Booleano. Define si se muestran o no los errores de MySQL que se puedan producir. Por defecto está en "true"; * $_pagi_propagar OPCIONAL Array de cadenas. Contiene los nombres de las variables que se quiere propagar por el url. Por defecto se propagarán todas las que ya vengan por el url (GET). * $_pagi_conteo_alternativo OPCIONAL Booleano. Define si se utiliza mysql_num_rows() (true) o COUNT(*) (false). Por defecto está en false. * $_pagi_separador OPCIONAL Cadena. Cadena que separa los enlaces numéricos en la barra de navegación entre páginas. Por defecto se utiliza la cadena " | ". * $_pagi_nav_estilo OPCIONAL Cadena. Contiene el nombre del estilo CSS para los enlaces de paginación. Por defecto no se especifica estilo. * $_pagi_nav_anterior OPCIONAL Cadena. Contiene lo que debe ir en el enlace a la página anterior. Puede ser un tag <img>. Por defecto se utiliza la cadena "« Anterior". * $_pagi_nav_siguiente OPCIONAL Cadena. Contiene lo que debe ir en el enlace a la página siguiente. Puede ser un tag <img>. Por defecto se utiliza la cadena "Siguiente »" * $_pagi_nav_primera OPCIONAL Cadena. Contiene lo que debe ir en el enlace a la primera página. Puede ser un tag <img>. Por defecto se utiliza la cadena "«« Primera". * $_pagi_nav_ultima OPCIONAL Cadena. Contiene lo que debe ir en el enlace a la página siguiente. Puede ser un tag <img>. Por defecto se utiliza la cadena "Última »»" -------------------------------------------------------------------------- */ /* * Verificación de los parámetros obligatorios y opcionales. *------------------------------------------------------------------------ */ if(empty($_pagi_sql)){ // Si no se definió $_pagi_sql... grave error! // Este error se muestra sí o sí (ya que no es un error de mysql) die("<b>Error Paginator : </b>No se ha definido la variable \$_pagi_sql"); } if(empty($_pagi_cuantos)){ // Si no se ha especificado la cantidad de registros por página // $_pagi_cuantos será por defecto 20 $_pagi_cuantos = 20; } if(!isset($_pagi_mostrar_errores)){ // Si no se ha elegido si se mostrará o no errores // $_pagi_errores será por defecto true. (se muestran los errores) $_pagi_mostrar_errores = true; } if(!isset($_pagi_conteo_alternativo)){ // Si no se ha elegido el tipo de conteo // Se realiza el conteo dese mySQL con COUNT(*) $_pagi_conteo_alternativo = false; } if(!isset($_pagi_separador)){ // Si no se ha elegido un separador // Se toma el separador por defecto. $_pagi_separador = " | "; } if(isset($_pagi_nav_estilo)){ // Si se ha definido un estilo para los enlaces, se genera el atributo "class" para el enlace $_pagi_nav_estilo_mod = "class=\"$_pagi_nav_estilo\""; }else{ // Si no, se utiliza una cadena vacía. $_pagi_nav_estilo_mod = ""; } if(!isset($_pagi_nav_anterior)){ // Si no se ha elegido una cadena para el enlace "siguiente" // Se toma la cadena por defecto. $_pagi_nav_anterior = "« Anterior"; } if(!isset($_pagi_nav_siguiente)){ // Si no se ha elegido una cadena para el enlace "siguiente" // Se toma la cadena por defecto. $_pagi_nav_siguiente = "Siguiente »"; } if(!isset($_pagi_nav_primera)){ // Si no se ha elegido una cadena para el enlace "primera" // Se toma la cadena por defecto. $_pagi_nav_primera = "«« Primera"; } if(!isset($_pagi_nav_ultima)){ // Si no se ha elegido una cadena para el enlace "siguiente" // Se toma la cadena por defecto. $_pagi_nav_ultima = "Última »»"; } //------------------------------------------------------------------------ /* * Establecimiento de la página actual. *------------------------------------------------------------------------ */ if (empty($_GET['_pagi_pg'])){ // Si no se ha hecho click a ninguna página específica // O sea si es la primera vez que se ejecuta el script // $_pagi_actual es la pagina actual-->será por defecto la primera. $_pagi_actual = 1; }else{ // Si se "pidió" una página específica: // La página actual será la que se pidió. $_pagi_actual = $_GET['_pagi_pg']; } //------------------------------------------------------------------------ /* * Establecimiento del número de páginas y del total de registros. *------------------------------------------------------------------------ */ // Contamos el total de registros en la BD (para saber cuántas páginas serán) // La forma de hacer ese conteo dependerá de la variable $_pagi_conteo_alternativo if($_pagi_conteo_alternativo == false){ $_pagi_sqlConta = eregi_replace("select[[:space:]](.*)[[:space:]]from", "SELECT COUNT(*) FROM", $_pagi_sql); $_pagi_result2 = mysql_query($_pagi_sqlConta); // Si ocurrió error y mostrar errores está activado if($_pagi_result2 == false && $_pagi_mostrar_errores == true){ die (" Error en la consulta de conteo de registros: $_pagi_sqlConta. Mysql dijo: <b>".mysql_error()."</b>"); } $_pagi_totalReg = mysql_result($_pagi_result2,0,0);//total de registros }else{ $_pagi_result3 = mysql_query($_pagi_sql); // Si ocurrió error y mostrar errores está activado if($_pagi_result3 == false && $_pagi_mostrar_errores == true){ die (" Error en la consulta de conteo alternativo de registros: $_pagi_sql. Mysql dijo: <b>".mysql_error()."</b>"); } $_pagi_totalReg = mysql_num_rows($_pagi_result3); } // Calculamos el número de páginas (saldrá un decimal) // con ceil() redondeamos y $_pagi_totalPags será el número total (entero) de páginas que tendremos $_pagi_totalPags = ceil($_pagi_totalReg / $_pagi_cuantos); //------------------------------------------------------------------------ /* * Propagación de variables por el URL. *------------------------------------------------------------------------ */ // La idea es pasar también en los enlaces las variables hayan llegado por url. $_pagi_enlace = $_SERVER['PHP_SELF']; $_pagi_query_string = "?"; if(!isset($_pagi_propagar)){ //Si no se definió qué variables propagar, se propagará todo el $_GET (por compatibilidad con versiones anteriores) //Perdón... no todo el $_GET. Todo menos la variable _pagi_pg if (isset($_GET['_pagi_pg'])) unset($_GET['_pagi_pg']); // Eliminamos esa variable del $_GET $_pagi_propagar = array_keys($_GET); }elseif(!is_array($_pagi_propagar)){ // si $_pagi_propagar no es un array... grave error! die("<b>Error Paginator : </b>La variable \$_pagi_propagar debe ser un array"); } // Este foreach está tomado de la Clase Paginado de webstudio // (http://www.forosdelweb.com/showthread.php?t=65528) foreach($_pagi_propagar as $var){ if(isset($GLOBALS[$var])){ // Si la variable es global al script $_pagi_query_string.= $var."=".$GLOBALS[$var]."&"; }elseif(isset($_REQUEST[$var])){ // Si no es global (o register globals está en OFF) $_pagi_query_string.= $var."=".$_REQUEST[$var]."&"; } } // Añadimos el query string a la url. $_pagi_enlace .= $_pagi_query_string; //------------------------------------------------------------------------ /* * Generación de los enlaces de paginación. *------------------------------------------------------------------------ */ // La variable $_pagi_navegacion contendrá los enlaces a las páginas. $_pagi_navegacion_temporal = array(); if ($_pagi_actual != 1){ // Si no estamos en la página 1. Ponemos el enlace "primera" $_pagi_url = 1; //será el número de página al que enlazamos $_pagi_navegacion_temporal[] = "<a ".$_pagi_nav_estilo_mod." onclick=\"pesquisa($_pagi_url)\">$_pagi_nav_primera</a>"; // Si no estamos en la página 1. Ponemos el enlace "anterior" $_pagi_url = $_pagi_actual - 1; //será el número de página al que enlazamos $_pagi_navegacion_temporal[] = "<a ".$_pagi_nav_estilo_mod." onclick=\"pesquisa($_pagi_url)\">$_pagi_nav_anterior</a>"; } // La variable $_pagi_nav_num_enlaces sirve para definir cuántos enlaces con // números de página se mostrarán como máximo. // Ojo: siempre se mostrará un número impar de enlaces. Más info en la documentación. if(!isset($_pagi_nav_num_enlaces)){ // Si no se definió la variable $_pagi_nav_num_enlaces // Se asume que se mostrarán todos los números de página en los enlaces. $_pagi_nav_desde = 1;//Desde la primera $_pagi_nav_hasta = $_pagi_totalPags;//hasta la última }else{ // Si se definió la variable $_pagi_nav_num_enlaces // Calculamos el intervalo para restar y sumar a partir de la página actual $_pagi_nav_intervalo = ceil($_pagi_nav_num_enlaces/2) - 1; // Calculamos desde qué número de página se mostrará $_pagi_nav_desde = $_pagi_actual - $_pagi_nav_intervalo; // Calculamos hasta qué número de página se mostrará $_pagi_nav_hasta = $_pagi_actual + $_pagi_nav_intervalo; // Ajustamos los valores anteriores en caso sean resultados no válidos // Si $_pagi_nav_desde es un número negativo if($_pagi_nav_desde < 1){ // Le sumamos la cantidad sobrante al final para mantener el número de enlaces que se quiere mostrar. $_pagi_nav_hasta -= ($_pagi_nav_desde - 1); // Establecemos $_pagi_nav_desde como 1. $_pagi_nav_desde = 1; } // Si $_pagi_nav_hasta es un número mayor que el total de páginas if($_pagi_nav_hasta > $_pagi_totalPags){ // Le restamos la cantidad excedida al comienzo para mantener el número de enlaces que se quiere mostrar. $_pagi_nav_desde -= ($_pagi_nav_hasta - $_pagi_totalPags); // Establecemos $_pagi_nav_hasta como el total de páginas. $_pagi_nav_hasta = $_pagi_totalPags; // Hacemos el último ajuste verificando que al cambiar $_pagi_nav_desde no haya quedado con un valor no válido. if($_pagi_nav_desde < 1){ $_pagi_nav_desde = 1; } } } for ($_pagi_i = $_pagi_nav_desde; $_pagi_i<=$_pagi_nav_hasta; $_pagi_i++){//Desde página 1 hasta última página ($_pagi_totalPags) if ($_pagi_i == $_pagi_actual) { // Si el número de página es la actual ($_pagi_actual). Se escribe el número, pero sin enlace y en negrita. $_pagi_navegacion_temporal[] = "<span><strong>$_pagi_i</strong></span>"; }else{ // Si es cualquier otro. Se escibe el enlace a dicho número de página. $_pagi_navegacion_temporal[] = "<a ".$_pagi_nav_estilo_mod." onclick=\"pesquisa($_pagi_i)\">".$_pagi_i."</a>"; } } if ($_pagi_actual < $_pagi_totalPags){ // Si no estamos en la última página. Ponemos el enlace "Siguiente" $_pagi_url = $_pagi_actual + 1; //será el número de página al que enlazamos $_pagi_navegacion_temporal[] = "<a ".$_pagi_nav_estilo_mod." onclick=\"pesquisa($_pagi_url)\">$_pagi_nav_siguiente</a>"; // Si no estamos en la última página. Ponemos el enlace "Última" $_pagi_url = $_pagi_totalPags; //será el número de página al que enlazamos $_pagi_navegacion_temporal[] = "<a ".$_pagi_nav_estilo_mod." onclick=\"pesquisa($_pagi_url)\">$_pagi_nav_ultima</a>"; } $_pagi_navegacion = implode($_pagi_separador, $_pagi_navegacion_temporal); //------------------------------------------------------------------------ /* * Obtención de los registros que se mostrarán en la página actual. *------------------------------------------------------------------------ */ // Calculamos desde qué registro se mostrará en esta página // Recordemos que el conteo empieza desde CERO. $_pagi_inicial = ($_pagi_actual-1) * $_pagi_cuantos; // Consulta SQL. Devuelve $cantidad registros empezando desde $_pagi_inicial $_pagi_sqlLim = $_pagi_sql." LIMIT $_pagi_inicial,$_pagi_cuantos"; $_pagi_result = mysql_query($_pagi_sqlLim); // Si ocurrió error y mostrar errores está activado if($_pagi_result == false && $_pagi_mostrar_errores == true){ die ("Error en la consulta limitada: $_pagi_sqlLim. Mysql dijo: <b>".mysql_error()."</b>"); } //------------------------------------------------------------------------ /* * Generación de la información sobre los registros mostrados. *------------------------------------------------------------------------ */ // Número del primer registro de la página actual $_pagi_desde = $_pagi_inicial + 1; // Número del último registro de la página actual $_pagi_hasta = $_pagi_inicial + $_pagi_cuantos; if($_pagi_hasta > $_pagi_totalReg){ // Si estamos en la última página // El ultimo registro de la página actual será igual al número de registros. $_pagi_hasta = $_pagi_totalReg; } $_pagi_info = "desde el $_pagi_desde hasta el $_pagi_hasta de un total de $_pagi_totalReg"; //------------------------------------------------------------------------ /** * Variables que quedan disponibles después de incluir el script vía include(): * ------------------------------------------------------------------------ * $_pagi_result Identificador del resultado de la consulta a la BD para los registros de la página actual. Listo para ser "pasado" por una función como mysql_fetch_row(), mysql_fetch_array(), mysql_fetch_assoc(), etc. * $_pagi_navegacion Cadena que contiene la barra de navegación con los enlaces a las diferentes páginas. Ejemplo: "<<primera | <anterior | 1 | 2 | 3 | 4 | siguiente> | última>>". * $_pagi_info Cadena que contiene información sobre los registros de la página actual. Ejemplo: "desde el 16 hasta el 30 de un total de 123"; */ ?>Aqui tive que alterar a maneira como ele fazia a paginação usando o GET dentro dos links , com as alterações agora o paginator.inc.php passa utilizar o evento onclick() dentro dos links do lugar do Href passando os parametros que ele passaria pelo GET, ou seja, ele continua mandando pelo GET, mas agora pelo Ajax, evitando o recarregamento da sua pagina. Exemplo: http://www.cgsoftweb.com/teste/paginacao/ Espero que aproveitem grande abraço Compartilhar este post Link para o post Compartilhar em outros sites
Rodrigo Tschope 0 Denunciar post Postado Julho 10, 2008 Parabens meu caro. Pelo Tutorial. Curtia demais o script paginator, agora com esse acrescimo ficou muito bom mesmo. Abraços! Compartilhar este post Link para o post Compartilhar em outros sites
fox_hound 0 Denunciar post Postado Julho 15, 2008 Parabens meu caro. Pelo Tutorial. Curtia demais o script paginator, agora com esse acrescimo ficou muito bom mesmo. Abraços! achei q o tópico ficou grande d+, mas acho q não podia ser diferente valeu!! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites
Henrique Barcelos 290 Denunciar post Postado Julho 24, 2008 pra qm entende de espanhol... o q seria "cadena"??? eh o msm que string Compartilhar este post Link para o post Compartilhar em outros sites
João Melo 1 Denunciar post Postado Julho 24, 2008 Nota 1.000.000.000.... Compartilhar este post Link para o post Compartilhar em outros sites
João Melo 1 Denunciar post Postado Julho 24, 2008 pra qm entende de espanhol... o q seria "cadena"??? eh o msm que string Segundo o oráculo cadena = cadeia http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites
fox_hound 0 Denunciar post Postado Julho 25, 2008 pra qm entende de espanhol... o q seria "cadena"??? eh o msm que string acho q é string mesmo :wacko: mas meu forte é ingles http://forum.imasters.com.br/public/style_emoticons/default/grin.gif Nota 1.000.000.000.... valeu João, q bom q aprovou amigo http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif abraços Compartilhar este post Link para o post Compartilhar em outros sites
joellazzari 0 Denunciar post Postado Julho 25, 2008 fox_hound, muito bom mesmo, ótima adaptação para o paginador. estava procurando um paginador desses a meses - obrigado! Quero ver se consigo adaptar ainda mais esse script - colocar uma busca no início dele. Tenho um banco de dados com quase 6.000 notícias, seria muito útil pra mim. vou tentar fazer algo assim: 1 <select> combo com os campos da tabela onde eu quero procurar; 2 um input text para digitar o texto a procurar; 3 um botão para clicar e efetuar a busca. O que você acha? O ideal, em imaginei, seria uma função ou classe; onde informo os campos da tabela e ele me gera o "cabeçalho" da busca. Sei que já fez muito, mas preciso de ajuda, caso esteja disposto. Meu conhecimento é limitado p/ fazer isso sozinho. Mais uma vez obrigado pela adaptação no script. Compartilhar este post Link para o post Compartilhar em outros sites
fox_hound 0 Denunciar post Postado Julho 25, 2008 fox_hound, muito bom mesmo, ótima adaptação para o paginador. estava procurando um paginador desses a meses - obrigado! Quero ver se consigo adaptar ainda mais esse script - colocar uma busca no início dele. Tenho um banco de dados com quase 6.000 notícias, seria muito útil pra mim. vou tentar fazer algo assim: 1 <select> combo com os campos da tabela onde eu quero procurar; 2 um input text para digitar o texto a procurar; 3 um botão para clicar e efetuar a busca. O que você acha? O ideal, em imaginei, seria uma função ou classe; onde informo os campos da tabela e ele me gera o "cabeçalho" da busca. Sei que já fez muito, mas preciso de ajuda, caso esteja disposto. Meu conhecimento é limitado p/ fazer isso sozinho. Mais uma vez obrigado pela adaptação no script. cara, você já viu o meu tópico da busca simples em Ajax?? Ele tem alguma coisa parecida com isso, dá até pra testar lá http://forum.imasters.com.br/index.php?showtopic=296016 abraços e valeu http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites
joellazzari 0 Denunciar post Postado Julho 30, 2008 cara, você já viu o meu tópico da busca simples em Ajax?? Ele tem alguma coisa parecida com isso, dá até pra testar lá http://forum.imasters.com.br/index.php?showtopic=296016 abraços e valeu http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Não tinha visto, dei uma olhada no demo, é isso mesmo que estava procurando. Vou tentar esse final de semana unir seus dois tutoriais: busca + paginador. Mais uma vez obrigado! Compartilhar este post Link para o post Compartilhar em outros sites
Henrique Barcelos 290 Denunciar post Postado Agosto 28, 2008 To testando ake kra, os links parecem q naum tão funcionando, ele cria td certim + qdo clico nos links nd acontece... Compartilhar este post Link para o post Compartilhar em outros sites
Henrique Barcelos 290 Denunciar post Postado Agosto 29, 2008 oops, axei o problema... soh q agora tm otra coisa, oh o erro q aparece: "Error en la consulta de conteo de registros: SELECT COUNT(*) FROM . Mysql dijo: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1" ????? Compartilhar este post Link para o post Compartilhar em outros sites
fox_hound 0 Denunciar post Postado Setembro 4, 2008 oops, axei o problema... soh q agora tm otra coisa, oh o erro q aparece: "Error en la consulta de conteo de registros: SELECT COUNT(*) FROM . Mysql dijo: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1" ????? opa, beleza? kra você ta usando o arquivo busca.php corretamente?? Pois nesse arquivo é q você irá setar a variavel $_pagi_sql que é responsavel pela consulta abraços Compartilhar este post Link para o post Compartilhar em outros sites
grandems 0 Denunciar post Postado Setembro 7, 2008 Uma pequena colaboração: Talvez alguém poderá ter uma tabela com alguns milhões de registros. Aí, ficar paginando de uma em uma vai ser meio complicado. Aos interessados, basta incluir no paginator.inc.php o seguinte código: (linha 334) $_pagi_navegacion = implode($_pagi_separador, $_pagi_navegacion_temporal); $drop_total_pagina = "<select name='ir_para' id='ir_para' class='drop' onchange=\"pesquisa(this.value)\">"; for ($mn = 1; $mn < $_pagi_totalPags; $mn++) { $drop_total_pagina .= "<option value='$mn' "; if ($mn==$_pagi_actual) $drop_total_pagina .= " selected "; $drop_total_pagina .= ">$mn</option>"; } $drop_total_pagina .= "</select>"; //------------------------------------------------------------------------ Depois é só ir no busca.php e no final acrescentar: //incluimos a paginação echo"<p>".$_pagi_navegacion." $drop_total_pagina</p>"; Com isso, será montado um dropdown que permitirá ir mais rápido quando a tabela for muito grande. Espero que ajude alguém... Ahm, o estilo drop que é utilizado no <select option> é select.drop { font-family: verdana, arial, helvetica; font-size: 11px; color: #666666; border: 1pt solid #CCE6FF; padding-left: 1pt; padding-top: 1pt; padding-bottom: 1pt; BACKGROUND-COLOR: #f7f3f7; } Mas isso é irrelevante e opcional. []~s Álvaro Compartilhar este post Link para o post Compartilhar em outros sites
Roberto_S_Luz 2 Denunciar post Postado Setembro 9, 2008 Belo post...é bastante útil...ainda mais depois dos acrescimos do grandems, com isso fica muito mais dinamico e usavel para o usuario... http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Quando eu crescer...quero ser igual a você's, rssss http://forum.imasters.com.br/public/style_emoticons/default/clap.gif Parabéns e um grande abraço à todos. http://forum.imasters.com.br/public/style_emoticons/default/joia.gif Compartilhar este post Link para o post Compartilhar em outros sites
fox_hound 0 Denunciar post Postado Setembro 10, 2008 Uma pequena colaboração: Talvez alguém poderá ter uma tabela com alguns milhões de registros. Aí, ficar paginando de uma em uma vai ser meio complicado. Aos interessados, basta incluir no paginator.inc.php o seguinte código: (linha 334) $_pagi_navegacion = implode($_pagi_separador, $_pagi_navegacion_temporal); $drop_total_pagina = "<select name='ir_para' id='ir_para' class='drop' onchange=\"pesquisa(this.value)\">"; for ($mn = 1; $mn < $_pagi_totalPags; $mn++) { $drop_total_pagina .= "<option value='$mn' "; if ($mn==$_pagi_actual) $drop_total_pagina .= " selected "; $drop_total_pagina .= ">$mn</option>"; } $drop_total_pagina .= "</select>"; //------------------------------------------------------------------------ Depois é só ir no busca.php e no final acrescentar: //incluimos a paginação echo"<p>".$_pagi_navegacion." $drop_total_pagina</p>"; Com isso, será montado um dropdown que permitirá ir mais rápido quando a tabela for muito grande. Espero que ajude alguém... Ahm, o estilo drop que é utilizado no <select option> é select.drop { font-family: verdana, arial, helvetica; font-size: 11px; color: #666666; border: 1pt solid #CCE6FF; padding-left: 1pt; padding-top: 1pt; padding-bottom: 1pt; BACKGROUND-COLOR: #f7f3f7; } Mas isso é irrelevante e opcional. []~s Álvaro valeu Álvaro, é sempre bom ter alguem com uma dica pra melhorar ainda mais seu trabalho, muito grato vlw mano http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif PS: é relevante sim http://forum.imasters.com.br/public/style_emoticons/default/clap.gif Compartilhar este post Link para o post Compartilhar em outros sites
Wesley Macente 0 Denunciar post Postado Outubro 8, 2008 oops, axei o problema... soh q agora tm otra coisa, oh o erro q aparece: "Error en la consulta de conteo de registros: SELECT COUNT(*) FROM . Mysql dijo: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1" ????? Rick, poderia me dizer como solucionou o problema dos links? tbm estou tendo a dificuldade. valeu! Compartilhar este post Link para o post Compartilhar em outros sites
fox_hound 0 Denunciar post Postado Outubro 31, 2008 oops, axei o problema... soh q agora tm otra coisa, oh o erro q aparece: "Error en la consulta de conteo de registros: SELECT COUNT(*) FROM . Mysql dijo: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1" ????? Rick, poderia me dizer como solucionou o problema dos links? tbm estou tendo a dificuldade. valeu! disponibilizei um zip com os arquivos necessarios no meu site - area Downloads ( http://www.cgsoftweb.com/arquivos.php?acao=vizualizar ), visto que alguns companheiros estão tendo dificildades, seque o link direto http://www.cgsoftweb.com/arquivos/paginacao.rar abraços Compartilhar este post Link para o post Compartilhar em outros sites
P3rukao 0 Denunciar post Postado Fevereiro 22, 2009 fox_hound, achei muito maneiro esse seu script para paginação, mas estou precisando muito alterar um parâmetro nele, para que posssa servir pra minha necessidade. Eu preciso passar um parâmetro de busca, para que ele liste em minha página, apenas os assuntos relacionado com o que eu (usuario) estou procurando... Da forma como está, ele está fazendo uma seleção automatica numa tabela e exibindo os dados somente... =/ .... é nesse trecho que eu preciso mudar... » Como que eu passo os valores de busca que eu quero por parâmetro para o script de paginação??? Preciso muito de sua ajuda com isso amigo... ;) Att... Compartilhar este post Link para o post Compartilhar em outros sites
webmind 5 Denunciar post Postado Março 7, 2009 eu testei esse codigo ae e ao clicar nas outras paginas da paginacao nenhum resultado aparece alguem me pode explicar pk ainda sou novato em php e nao entendi. Compartilhar este post Link para o post Compartilhar em outros sites