Foros del Web » Programando para Internet » PHP »

Ayuda con refresh de una pagina

Estas en el tema de Ayuda con refresh de una pagina en el foro de PHP en Foros del Web. hola, tengo una consulta que hacerles. en mi pagina consulta.php estoy poniendo una opcion para subir un archivo al servidor. todo me funciona correctamente, le ...
  #1 (permalink)  
Antiguo 29/09/2007, 11:46
 
Fecha de Ingreso: septiembre-2007
Mensajes: 9
Antigüedad: 16 años, 6 meses
Puntos: 0
Ayuda con refresh de una pagina

hola, tengo una consulta que hacerles.

en mi pagina consulta.php estoy poniendo una opcion para subir un archivo al servidor.

todo me funciona correctamente, le estoy agregando las opciones de la carga del archivo con un require('upload.php'); EL PROBLEMA Y MI DUDA CONCISTE EN QUE,
cuando le doy al boton subir archivo. lo hace bien pero no se me refresca la pagina para que ya no me aparesca esa opcion, ya que insetro un registro en una tabla con los datos del archivo subido. eso lo valido para saber si ponerle la opcion de subir el archivo o el link al archivo subido. solo quiero saber como hacer para que al darle click al boton subir se refresque automaticamente. ya que si lo hago con el F5. hace lo que le pido.

espero me puedan ayudar.
  #2 (permalink)  
Antiguo 30/09/2007, 11:59
 
Fecha de Ingreso: septiembre-2007
Mensajes: 52
Antigüedad: 16 años, 6 meses
Puntos: 2
Re: Ayuda con refresh de una pagina

Cita:
Iniciado por aalanisg Ver Mensaje
cuando le doy al boton subir archivo. lo hace bien pero no se me refresca la pagina para que ya no me aparesca esa opcion
(..)
solo quiero saber como hacer para que al darle click al boton subir se refresque automaticamente. ya que si lo hago con el F5. hace lo que le pido.
Suena como si el problema fuera el orden de las operaciones tal y como están en tu página.

Según entiendo tu tienes todo esto en un mismo archivo .php, que muestra el formulario y también procesa el código de cargar archivos. El comportamiento que describes sería de esperarse si tu código luce más o menos así:

Código PHP:
<html>
  ..

  <!--
  * Aquí se muestra el formulario, con el botón para cargar un archivo,
  * o el enlace al archivo según sea el caso
  -->

  ..

</html>
<?php

// Aquí está el código que procesa la carga de archivos
require 'upload.php';

..

?>
Es decir, si tu muestras la página primero y después agregas la información a la base de datos, la página no mostrará cambios, será como si no se hubiera cargado ningún archivo porque efectivamente al momento de mostrar la página no ha ocurrido ningún cambio aun.

En ese caso sería cuestión de mover tu código al comienzo del archivo .php, para que el formulario ya pueda contar con los últimos cambios si el usuario subió un archivo.

Alternativamente, podrías usar otros trucos para forzar una actualización de la página, por ejemplo, usando algo como:

Código PHP:
header("Location: $url_de_la_pagina"); 
Justo después de agregar los registros a la base de datos. O agregar un elemento <meta http-equiv="refresh" /> en la cabecera del html para producir un efecto parecido.

Si no consigues solucionar el problema, te sugiero que publiques el código de tu archivo .php para conocer mejor el problema :).
  #3 (permalink)  
Antiguo 30/09/2007, 12:24
 
Fecha de Ingreso: septiembre-2007
Mensajes: 9
Antigüedad: 16 años, 6 meses
Puntos: 0
Re: Ayuda con refresh de una pagina

OK, este es el codigo que tengo

1.- consulta.php: en el me muestra la consulta de una requisicion, en este mismo archivo tengo la consulta a la bd de sql en la cual verifico si ya termino con la captura de los datos, cuando ocurre esto muestro la pagina upload.php

esta es una parte de consulta.php donde pongo o no el upload.php

Código PHP:
 $sqlARCmssql_query("SELECT TOP 1 * FROM mcotiza where requisi=\"$wrequi\" and prov=\"$wnoprov\"  ",$con);
        
$row_cntARC =  mssql_num_rows($sqlARC);
        while(
$rowARC =  mssql_fetch_array($sqlARC))
        {
            if (
$rowARC['estatus']==1)
            {
            
$wnuevaruta="consulta.php?cood45=".$wrequi."&cimg=1";
            echo 
'<p><a href="verArchivos.php">Ver Archivos Existentes</a></p>';
            echo 
"<p><a href=".$wnuevaruta."><h4>Cambiar el Archivo Exsistente? [".$rowARC['nombre']."] </h4></a></p>";        
            }
            else
            if (
$rowARC['estatus']==0)
            require(
'upload2.php');
        }    
        
        if (
$row_cntARC==0)
        {
        require(
'upload2.php');
        } 

ok hasta ahi todo bien, el problema yo creo es en el upload.php ya que ahi muestro 3 botones
browse: para buscar el archivo a subir
subir: logico, que manda tambien la variable consulta en 1
cancelar: que manda tambien la variable consulta en 2, esto para que el archivo upload.php actualize el estatus del registro en la bd.


2.- upload.php que basicamente es el formulario con los 3 botones que envian el submit() a controlupload.php

lo que yo quiero es que cuando haga el submit a controlupload.php
me actualize la pagina consulta.php que es donde esta insetrado el upload.php
ME EXPLICO?

Código PHP:



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<
html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es" lang="es">
<
head>
    <
title>Municipio de CdGuadalupeN.L.</title>
    <
link rev="made" href="" />
    <
link rel="shortcut icon" href="../favicon.ico" />
    <
meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</
head>

<
body>
<
p><a href="verArchivos.php">Ver Archivos Existentes</a></p>



<
form method="post" enctype="multipart/form-data" action="controlUpload2.php" target="iframeUpload" >
    
Archivo: <input name="fileUpload" type="file" size="46"  />&nbsp;&nbsp;
    <
p>&nbsp;&nbsp;
    <
button class="button" id="buttonUpload" onclick="javascript: submit()"  style="width: 53px; height: 21px">Subir</button>
    <
input type="hidden" name="consulta"  VALUE="1">
    <
br /><iframe name="iframeUpload" style="display:none"></iframe>    
    </
p>   
</
form>

<
form method="post" enctype="multipart/form-data" action="controlUpload2.php" target="iframeUpload" >
    <
button class="button" id="buttonCancel" onclick="javascript: submit()"  style="width: 80px; height: 21px">Cancelar</button>
    <
input type="hidden" name="consulta"  VALUE="2">
</
form>


</
body>
</
html

Y POR ULTIMO EL CONTROLUPLOAD.PHP, QUE ESTE VERIFICA EL ESTATUS, SUBE EL ARCHIVO, EN CASO DE QUE SEA MODIFICACION ELIMINA EL EXISTENTE Y PONE EL NUEVO, INSERTA EN LA BD LOS DATOS DEL ARCHIVO SUBIDO ETC ETC.


Código PHP:
<?php session_start();
$wrequi=$_SESSION["wrequi"];
$wnoprov=$_SESSION["noprov"];
require(
'conecta.php');
$modifica=$_POST['consulta'];

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es" lang="es">
<head>
    <title>Municipio de Cd. Guadalupe, N.L.</title>
    <link rev="made" href="" />
    <link rel="shortcut icon" href="../favicon.ico" />
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>


<body>
<?php
if($modifica==1)
{
    
//    Script Que copia el archivo temporal subido al servidor en un directorio.
    
$tipo trim(substr($_FILES['fileUpload']['type'], 0500));
    
     
$sqlARCmssql_query("SELECT TOP 1 * FROM mcotiza_perm where descripcion=\"$tipo\" ",$con);
      
$row_cntARC =  mssql_num_rows($sqlARC);
      while(
$rowARC =  mssql_fetch_array($sqlARC))
      {                 
          if (
$rowARC['estatus']==0)
          {                                                         
         
$tipo_perm=0;                                                              
         
$tipo_descrip='Extencion NO Permitida';
         
$extencion=trim($rowARC['tipo']);
        } 
              else
              if (
$rowARC['estatus']==1)                                                         
              {
                 
$tipo_perm=1;                  
                 
$tipo_descrip='Extencion Permitida';
                 
$extencion=trim($rowARC['tipo']);
            }     
      }    
      
         if (
$row_cntARC==0)
            {
             
$tipo_perm=0;                                                              
              
$tipo_descrip='Extencion NO Permitida o NO RECONOCIDA EN LA BASE DE DATOS';
             }         
    
    
//$SQL = "insert into mcotiza_perm (tipo,descripcion,estatus) values (' ','".$tipo."',1)"; 
    //$result = mssql_query($SQL,$con);    
    
       
    //    Definimos Directorio donde se guarda el archivo
    
$dirpath'archivos';
    if (!
file_exists($dirpath)) 
    {
    
mkdir($dirpath0700);
    }
    
$dirmk=$dirpath.'/'.$wnoprov;
    if (!
file_exists($dirmk)) 
    {
    
mkdir($dirmk0700);
    }
    
$dir=$dirmk.'/';
    

    
//    Intentamos Subir Archivo
    //    (1) Comprovamos que existe el nombre temporal del archivo
if (isset($_FILES['fileUpload']['tmp_name'])) 
{
  
//(2) - Comprovamos que se trata de un archivo Valido
  
if ($tipo_perm == 1
  {
    
//    (3) Por ultimo se intenta copiar el archivo al servidor.
    
if (!copy($_FILES['fileUpload']['tmp_name'], $dir.$wrequi.$_FILES['fileUpload']['name']))
       {
        echo 
'<script> alert("Error al Subir el Archivo");</script>';
       }
           else
                   { 
                       
//guarda los datos del archivo guardado
                           
$wrequisi=$wrequi;
                           
//$wnoprov;
                           
$wruta=$dir.$wrequi.$_FILES['fileUpload']['name']; 
                           
$wnombre=$wrequi.$_FILES['fileUpload']['name']; 
                         
                         
$sqlfecmssql_query("SELECT getdate() as fecha",$con);                    
                    while(
$rowfec =  mssql_fetch_array($sqlfec))
                    {    
                           
$wfecha=$rowfec['fecha'];
                           
//$wfecha="hoy";
                       
}                               
                           
                       
//////////////////////////////////////////////////////////////
                         
$sqlARCmssql_query("SELECT TOP 1 * FROM mcotiza where requisi=\"$wrequisi\" and prov=\"$wnoprov\"  ",$con);
                      
$row_cntARC =  mssql_num_rows($sqlARC);
                      while(
$rowARC =  mssql_fetch_array($sqlARC))
                      {                 
                          if (
$rowARC['estatus']==0)
                          {                                   
                           
unlink(trim($rowARC['ruta']));  //elimina el archivo existente para su reemplazo                                         
                         
$SQL "update mcotiza set requisi=\"$wrequisi\",prov=\"$wnoprov\",ruta=\"$wruta\",nombre=\"$wnombre\",tipo=\"$extencion\",fecha=\"$wfecha\",estatus=1  where requisi=\"$wrequisi\" and prov=\"$wnoprov\""
                         
$result mssql_query($SQL ,$con);
                          }
                      }    
                      
                      if (
$row_cntARC==0)
                      {
                      
$SQL "insert into mcotiza (requisi,prov,ruta,nombre,tipo,fecha,estatus) values ('".$wrequisi."','".$wnoprov."','".$wruta."','".$wnombre."','".$extencion."','".$wfecha."',1)"
                      
$result mssql_query($SQL,$con);                          
                      }                   
                       
/////////////////////////////////////////////////////////////                                                     
                            
                    
echo '<script> alert("El archivo ['.$extencion.'] '.$_FILES['fileUpload']['name'].' se ha copiado con Exito");</script>';                                        
                }
        }
        else echo 
'<script> alert("'.$tipo_descrip.'");</script>';
}
    else 
        echo 
'<script> alert("El Archivo no ha llegado al Servidor.");</script>';
    
}

if(
$modifica==2)                        
{
$sql"update mcotiza set estatus=1 where requisi=\"$wrequi\" and prov=\"$wnoprov\"";           
mssql_query($sql,$con);
echo 
'<script> alert("Se cancelo ");</script>';
}
?>
</body>

</html>

AYUDA....
  #4 (permalink)  
Antiguo 30/09/2007, 18:42
 
Fecha de Ingreso: septiembre-2007
Mensajes: 52
Antigüedad: 16 años, 6 meses
Puntos: 2
Re: Ayuda con refresh de una pagina

Gracias, ya me resulta un poco más clara la situación.

El flujo de tu aplicación se enreda un poco con los frames, las inclusiones con require() y la mezcla de PHP y HTML, pero me parece que algo que te podría servir sería usar un poco de javascript en controlUpload.php para refrescar la ubicación del documento principal en el navegador. Un ejemplo de cómo se vería esto puede ser algo así:

Código PHP:
<?php
// controlUpload.php (¿o controlUpload2.php?)

session_start();
$wrequi=$_SESSION["wrequi"];
$wnoprov=$_SESSION["noprov"];
require(
'conecta.php');
$modifica=$_POST['consulta'];

$mensaje '';

if(
$modifica==1)
{
    
// Script Que copia el archivo temporal subido al servidor en un directorio.
    
$tipo trim(substr($_FILES['fileUpload']['type'], 0500));

    
$sqlARC mssql_query("SELECT TOP 1 * FROM mcotiza_perm where descripcion=\"$tipo\" ",$con);
    
$row_cntARC =  mssql_num_rows($sqlARC);
    while(
$rowARC =  mssql_fetch_array($sqlARC))
    {
        if (
$rowARC['estatus']==0)
        {
            
$tipo_perm=0;
            
$tipo_descrip='Extencion NO Permitida';
            
$extencion=trim($rowARC['tipo']);
        }
        else if (
$rowARC['estatus']==1)
        {
            
$tipo_perm=1;
            
$tipo_descrip='Extencion Permitida';
            
$extencion=trim($rowARC['tipo']);
        }
    }

    if (
$row_cntARC==0)
    {
        
$tipo_perm=0;
        
$tipo_descrip='Extencion NO Permitida o NO RECONOCIDA EN LA BASE DE DATOS';
    }

    
//$SQL = "insert into mcotiza_perm (tipo,descripcion,estatus) values (' ','".$tipo."',1)";
    //$result = mssql_query($SQL,$con);


    //    Definimos Directorio donde se guarda el archivo
    
$dirpath'archivos';
    if (!
file_exists($dirpath))
    {
        
mkdir($dirpath0700);
    }
    
$dirmk=$dirpath.'/'.$wnoprov;
    if (!
file_exists($dirmk))
    {
        
mkdir($dirmk0700);
    }
    
$dir=$dirmk.'/';


    
//    Intentamos Subir Archivo
    //    (1) Comprovamos que existe el nombre temporal del archivo
    
if (isset($_FILES['fileUpload']['tmp_name']))
    {
        
//(2) - Comprovamos que se trata de un archivo Valido
        
if ($tipo_perm == 1)
        {
            
//    (3) Por ultimo se intenta copiar el archivo al servidor.
            
if (!copy($_FILES['fileUpload']['tmp_name'], $dir.$wrequi.$_FILES['fileUpload']['name']))
            {
                
$mensaje 'Error al Subir el Archivo';
            }
            else
            {
                
//guarda los datos del archivo guardado
                
$wrequisi=$wrequi;
                
//$wnoprov;
                
$wruta=$dir.$wrequi.$_FILES['fileUpload']['name'];
                
$wnombre=$wrequi.$_FILES['fileUpload']['name'];

                
$sqlfecmssql_query("SELECT getdate() as fecha",$con);
                while(
$rowfec =  mssql_fetch_array($sqlfec))
                {
                    
$wfecha=$rowfec['fecha'];
                    
//$wfecha="hoy";
                
}

                
//////////////////////////////////////////////////////////////
                
$sqlARCmssql_query("SELECT TOP 1 * FROM mcotiza where requisi=\"$wrequisi\" and prov=\"$wnoprov\"  ",$con);
                
$row_cntARC =  mssql_num_rows($sqlARC);
                while(
$rowARC =  mssql_fetch_array($sqlARC))
                {
                    if (
$rowARC['estatus']==0)
                    {
                        
unlink(trim($rowARC['ruta']));  //elimina el archivo existente para su reemplazo
                        
$SQL "update mcotiza set requisi=\"$wrequisi\",prov=\"$wnoprov\",ruta=\"$wruta\",nombre=\"$wnombre\",tipo=\"$extencion\",fecha=\"$wfecha\",estatus=1  where requisi=\"$wrequisi\" and prov=\"$wnoprov\"";
                        
$result mssql_query($SQL ,$con);
                    }
                }

                if (
$row_cntARC==0)
                {
                    
$SQL "insert into mcotiza (requisi,prov,ruta,nombre,tipo,fecha,estatus) values ('".$wrequisi."','".$wnoprov."','".$wruta."','".$wnombre."','".$extencion."','".$wfecha."',1)";
                    
$result mssql_query($SQL,$con);
                }
                
/////////////////////////////////////////////////////////////

                
$mensaje 'El archivo [' $extencion ']' .
                    
$_FILES['fileUpload']['name'] .' se ha copiado con Exito';
            }
        }
        else 
$mensaje $tipo_descrip;
    }
    else
        
$mensaje 'El Archivo no ha llegado al Servidor.';

}

if(
$modifica==2)
{
    
$sql"update mcotiza set estatus=1 where requisi=\"$wrequi\" and prov=\"$wnoprov\"";
    
mssql_query($sql,$con);
    
$mensaje 'Se cancelo';
}
?>

<html>
  <head>
    <script>

alert('<?php echo $mensaje?>');
top.location.href = 'upload.php';

    </script>
  </head>
</html>
El código en su mayoría es el mismo que has publicado, el cambio importante está hacia el final, principalmente en la sentencia javascript que define top.location.href. Nota que el uso de "top." allí es importante porque la página controlUpload.php está encerrada en un iframe, y lo que queremos es actualizar la página más externa.

Bueno, creo que algo así podría resultar pero cualquier cosa nos cuentas cómo te va.
  #5 (permalink)  
Antiguo 01/10/2007, 10:15
 
Fecha de Ingreso: septiembre-2007
Mensajes: 9
Antigüedad: 16 años, 6 meses
Puntos: 0
Re: Ayuda con refresh de una pagina

Muchas gracias!, funciono perfecto
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:44.