Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > PHP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 16-09-2008
alquimista_gdl alquimista_gdl is offline
Miembro
 
Registrado: ago 2008
Ubicación: Guadalajara, México
Posts: 78
Poder: 16
alquimista_gdl Va por buen camino
D4PHP: DBRepeater y algún buen paginador

Hola,

Estoy implementando el dbRepeater para mostrar grids de datos, en lugar del DBGrid que me parece le hace falta algo de madurez. Quize usar el dbPaginator con el dbRepeater pero igual, no supe o no veo manera de se desplieguen que distintos bloques (digamos de 10 en 10) para el dbRepeater. Hay alguien que haya usado el dbRepeater con algún buen paginador? De otra manera tendría que olvidarme de las ventajas de DBRepeater, usar el "paginator" junto con algun proceso de plantillas que genere registros según resultados del paginator.

Gracias !
Guillermo
Responder Con Cita
  #2  
Antiguo 17-09-2008
David82 David82 is offline
Miembro
 
Registrado: ago 2008
Posts: 27
Poder: 0
David82 Va por buen camino
Hola Guillermo, yo también estuve intentando "manejar" el dbpaginator y acabe dejandolo, no se controla bien el número máximo de paginas a mostrar, da problemas cuando utilizas otros elementos vcl...En fin, un montón de problemas. Lo que utilizo ahora es una función paginadora propia que me es más sencilla de utilizar, mira a ver si te sirve:

Código PHP:
function paginador($actual,$max,$path,$anterior,$siguiente,$uno,$dos,$tres,$pri,$ult,$saltoAnt,$saltoSig)
{
        
$max=ceil($max);
        if(
$max==1)
                {
                
$dos->visible=true;
                
$dos->caption="pág 1";
                
$dos->link="";
                
$uno->visible=false;
                
$tres->visible=false;
                
$siguiente->visible=false;
                
$anterior->visible=false;
                
$pri->visible=false;
                
$ult->visible=false;
                
$saltoAnt->visible=false;
                
$saltoSig->visible=false;
                }
        if(
$max==2)
                {
                
$uno->visible=true;
                
$tres->visible=true;
                
$siguiente->visible=true;
                
$anterior->visible=true;
                
$uno->caption="1";
                
$tres->caption="2";
                if (
$actual==1)
                        {
                        
$uno->link="";
                        
$tres->link=$path."2";
                        
$siguiente->link=$path."2";
                        
$anterior->link="";
                        }
                else
                        {
                        
$uno->link=$path."1";
                        
$tres->link="";
                        
$siguiente->link="";
                        
$anterior->link=$path."1";
                        }
                
$dos->visible=false;
                
$pri->visible=false;
                
$ult->visible=false;
                
$saltoAnt->visible=false;
                
$saltoSig->visible=false;
                }
        if(
$max>2)
                {
                
$uno->visible=true;
                
$dos->visible=true;
                
$tres->visible=true;
                
$siguiente->visible=true;
                
$anterior->visible=true;
                
$pri->visible=true;
                
$ult->visible=true;
                
$saltoAnt->visible=true;
                
$saltoSig->visible=true;
                if(
$actual==1)
                        {
                        
$anterior->link="";
                        
$siguiente->link=$path.($actual+1);
                        
$uno->caption=($actual);
                        
$uno->link="";
                        
$dos->caption=($actual+1);
                        
$dos->link=$path.($actual+1);
                        
$tres->caption=($actual+2);
                        
$tres->link=$path.($actual+2);
                        
$pri->link="";
                        
$ult->link=$path.$max;
                        
$saltoAnt->link="";
                        if(
$actual+3<$max)
                                {
                                
$saltoSig->link=$path.($actual+3);
                                }
                        else
                                {
                                
$saltoSig->link="";
                                }
                        }
                else
                        {
                        if(
$actual==$max)
                                {
                                
$anterior->link=$path.($actual-1);
                                
$siguiente->link="";
                                
$uno->caption=($actual-2);
                                
$uno->link=$path.($actual-2);
                                
$dos->caption=($actual-1);
                                
$dos->link=$path.($actual-1);
                                
$tres->caption=($actual);
                                
$tres->link="";
                                
$pri->link=$path."1";
                                
$ult->link="";
                                if(
$actual-3>'1')
                                        {
                                        
$saltoAnt->link=$path.($actual-3);
                                        }
                                else
                                        {
                                        
$saltoAnt->link="";
                                        }
                                
$saltoSig->link="";
                                }
                        else
                                {
                                
$anterior->link=$path.($actual-1);
                                
$siguiente->link=$path.($actual+1);
                                
$uno->caption=($actual-1);
                                
$uno->link=$path.($actual-1);
                                
$dos->caption=($actual);
                                
$dos->link="";
                                
$tres->caption=($actual+1);
                                
$tres->link=$path.($actual+1);
                                
$pri->link=$path."1";
                                
$ult->link=$path.$max;
                                if(
$actual-3>'1')
                                        {
                                        
$saltoAnt->link=$path.($actual-3);
                                        }
                                else
                                        {
                                        
$saltoAnt->link="";
                                        }
                                if(
$actual+3<$max)
                                        {
                                        
$saltoSig->link=$path.($actual+3);
                                        }
                                else
                                        {
                                        
$saltoSig->link="";
                                        }
                                }
                        }

                }

Los tres primeros parametros son la página actual, el número max de páginas y el path del link donde te lleva el paginador. El resto son las etiquetas del paginador.
A mi me hace un apaño, espero que te sirva.

Para mostrar los bloques de 10 en 10 yo lo hago en la sentencia SQL, poniendo limit X, 10; donde X es el valor de inicio que depende de la página actual.

Un saludo, David.
Responder Con Cita
  #3  
Antiguo 17-09-2008
alquimista_gdl alquimista_gdl is offline
Miembro
 
Registrado: ago 2008
Ubicación: Guadalajara, México
Posts: 78
Poder: 16
alquimista_gdl Va por buen camino
Muchas gracias David !!!
Responder Con Cita
  #4  
Antiguo 18-09-2008
alquimista_gdl alquimista_gdl is offline
Miembro
 
Registrado: ago 2008
Ubicación: Guadalajara, México
Posts: 78
Poder: 16
alquimista_gdl Va por buen camino
Hola David,

Estoy incorporando tu función a un programita de prueba que estoy haciendo; quisiera hacerte una pregunta: qué diferencia funcional hay entre los parámetros $anterior y $saltoAnt, así como $siguiente, $saltoSig ? Entiendo lo que debería espefidicar en $anterior y $siguiente; pero que tipo de etiqueta serían las que se prefijan con $salto ?

Por otro lado, entiendo que una línea como:

$siguiente->link=$path.($actual+1);

asume que a $path, se le concatenará la página siguiente a mostrar, por lo que path debería tener ya un string como "programa.php?pagina=" ?

Gracias,
Guillermo
Responder Con Cita
  #5  
Antiguo 18-09-2008
David82 David82 is offline
Miembro
 
Registrado: ago 2008
Posts: 27
Poder: 0
David82 Va por buen camino
Hola Guillermo,

La variable $path es como tu has puesto, se le pasa la cadena que va antes del número de página.
SaltoAnt y saltoSig te envian 3 páginas atras o adelante , mientras que anterior y siguiente solo saltan 1 página.

un saludo!
Responder Con Cita
  #6  
Antiguo 24-09-2008
Yolen Yolen is offline
Miembro
 
Registrado: oct 2007
Posts: 15
Poder: 0
Yolen Va por buen camino
As probado con el pager

A mi me ocurrio lo mismo pero con el pager me funciona correctamente
Responder Con Cita
  #7  
Antiguo 11-10-2008
Avatar de PepeLolo
PepeLolo PepeLolo is offline
Miembro
 
Registrado: jun 2003
Ubicación: Fuenlabrada - Madrid - Espagna
Posts: 265
Poder: 21
PepeLolo Va por buen camino
Yo tambien estoy empezando con PHP, concretamente con delphi for php y mi opinión es que los componentes en gral son un pestiño, estos generan cantidad de código, una autentica locura. Buscando, buscando encontre la página miniajax con excelentes miniprogramitas listos para incorporar en nuestros proyectos.

Uno de ellos es el enlace que dice Unobtrusive table sort script - Demo, genial tablas dinamicas dhtml con páginador, ordenación, selección, etc. Tambien hay un calendario, todo con css, javascript y dhtml (todo muy sencillo de utilizar).
__________________
PepeLolo
El hombre el único virus que mide más de unas cuantas micras
Responder Con Cita
  #8  
Antiguo 31-10-2008
Yolen Yolen is offline
Miembro
 
Registrado: oct 2007
Posts: 15
Poder: 0
Yolen Va por buen camino
Como insertas estos programitas

Buenas Pepelolo

Perdona que sea tan paquete pero como insertas esto programitas

Gracias
Responder Con Cita
  #9  
Antiguo 01-11-2008
Avatar de PepeLolo
PepeLolo PepeLolo is offline
Miembro
 
Registrado: jun 2003
Ubicación: Fuenlabrada - Madrid - Espagna
Posts: 265
Poder: 21
PepeLolo Va por buen camino
De momento solo he incluido el del calendario y las tablas, es solo cuestion de llevarlo a tu proyecto, incluir los hojas de estilo y el javascript, sigue uno de los ejemplos de la descarga.
__________________
PepeLolo
El hombre el único virus que mide más de unas cuantas micras
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Borrar varios registros en un Dbrepeater David82 PHP 0 09-09-2008 13:40:37
paginador con C#.NET foetus .NET 4 06-06-2008 21:43:35
Puede alguien recomendarme algun buen javascript obfuscator ? rubencho HTML, Javascript y otros 35 12-09-2007 01:02:50
d4php No funciona en la web brandolin PHP 2 06-07-2007 18:57:20
Paginador PHP con BD en Postgresql Diavlo PHP 2 27-07-2006 11:46:56


La franja horaria es GMT +2. Ahora son las 02:52:16.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi