Ver Mensaje Individual
  #3 (permalink)  
Antiguo 22/11/2006, 07:22
Avatar de manuweb
manuweb
 
Fecha de Ingreso: julio-2002
Mensajes: 75
Antigüedad: 21 años, 9 meses
Puntos: 10
A ver,


La barra la he colocado en un <TABLE> que se crea con la función inicializa_barra().

Ahí tengo tres <DIV>, el 1º es el que mostrará un texto o el registro procesado, el 2º es el marco de la barra que contiene el 3º que es la barra.

la segunda función, procesa barra(), utiliza javascript para cambiar el contenido de las etiquetas <DIV> que muestran la barra utilizando para ello document.getElementById('id').innerHTML que altera el HTML.

La tercera función, termina_barra(), simplemente sirve para indicar al que ve la página que se ha terminado.

dentro del php que recorrería una tabla o un fichero se llama a las funciones mencionadas:


Código PHP:
<? 
   
// ejemplo para recorrer una tabla de clientes y actualizar un campo
    
include "include/barra_porcentaje.php"
    
$sql"SELECT * from clientes"
    
$res=mysql_query($sql);  
    
$numeroRegistros=mysql_num_rows($res);  

    
// para el calculo de datos prcesados
    
$procesados=0
    
$porcentaje=0
    
// tope es para determinar cuando debo actualizar la barra
    
$tope inicializa_barra($numeroRegistros,"Cliente:"); 
    
$cont=0
    
$texto="T E R M I N A D O";
    
// recorro la tabla
    
while ($row=mysql_fetch_array($res)) { 
        if (
$cont $tope) { 
            
$cont=0
        } 
        
$procesados++; 
        
$pixelesround(($procesados*300)/$numeroRegistros); 
        
$porcentajeround(($procesados*100)/$numeroRegistros); 

        
// 
        // aqui las operaciones que se deseen en la tabla 
        // 

        // compruebo que hay que añadir una barrita
        
if ($cont==0) { 
            
procesa_barra($porcentaje,$pixeles,$row['nombre']);
            
flush(); 
            
ob_flush(); 
        } 
        
$cont ++; 
    } 
    
termina_barra($texto); 
?>

No sé, quizas está farragoso pero os aseguro que queda bien.

Solo me queda algo para los envios de archivo de descarga, generar PDF, es decir, los que llevan HEADER y ya son algo más complicado. En esto estoy bloquedo.

Saludos