función php para refrescar página.

Manore
08 de Agosto del 2003
Hola a todos,

Alguien conoce alguna función de PHP para realizar refrescos de páginas, es decir para despues de una actualización de los datos, estos se refresquen en sus contenedores y puedan ser vistos en tiempo real, despues de realizar alguna operación?

Yo no encontre ninguna en el manual de php del que dispongo aunque es bastante malejo.

Bueno, Gracias de antemano.



jakman
08 de Agosto del 2003
Hola, supongo ke la aktualizacion de los datos la haces sobre un formulario, si es asi, lo uniko ke tienes ke hacer es kon el metodo ""Post", es llamar de nuevo a tu pagina poniendo esto en tu form

<form method="post" action="<? echo $PHP_SELF ?>">

kon esto automatikamente despues de ke envies los kambios regresaras a la misma pagina y puedes hacer el kodigo kon ke muestras los nuevos datos

te pongo aki el kodigo para el kaso del form

<html>
<head>
<title>Opcion Personal</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>


<body bgcolor="#FFFFEC" text="#000000">
<br><br><br>

<div align="center">
<?
if ($Envio)
{
require "../servermodule.php";

$con=mysql_pconnect($kserver,$kuser,$kpassword)
or die ("No puedo conectarme al servidor de la Base de Datos");

mysql_select_db($kdb, $con)
or die("No puedo acceder a la Base de Datos, o esta no existe.");

// aki hacemos un Update sobre la tabla Usuarios con los datos que halla en el formulario
$FNac = $DD."/".$MM."/".$AA;
$sql = "UPDATE `Usuarios` SET `Nombre` = '".$Nmb."', `Direccion` = '".$Dir."', `Telefono`='".$Tel."', `Email`='".$Mail."', `Sexo`='".$Sexo."', `FNac`='".$FNac."' WHERE `Login`= '".$Usr."'";
$resultado=mysql_query($sql, $con);
$items = mysql_affected_rows($con);

if ($items > 0)
{
echo "<br><br><br><br><br><font face="Papyrus" color="Green" size="3"><b>Registro Aktualizado</b></font>";
}
else
{
echo "<br><br><br><br><br><font face="Papyrus" color="Green" size="3"><b>No realizó Ningun kambio en sus datos</b></font>";
} // fin if ($items >0)
?>
<script LANGUAGE="JavaScript">
<?//var pagina="../index.php"; ?>
var pagina="userpref.php?User=<? echo $Usr?>";

function redireccionar(){
location.href=pagina
}
setTimeout ("redireccionar()", 2000);
</script>
<?

}
else
{
// aki hacemos la konsulta a la base de datos para obtener la informacion del usuario

require "../servermodule.php";

$con=mysql_pconnect($kserver,$kuser,$kpassword)
or die ("No puedo conectarme al servidor de la Base de Datos");

mysql_select_db($kdb, $con)
or die("No puedo acceder a la Base de Datos, o esta no existe.");

$Qry= "Select * From Usuarios Where (Login = '$Usr')";

$resultado=mysql_query($Qry, $con); // aqui hace un select
$items = mysql_num_rows($resultado);

if (0 < $items)
{
while(($fila=mysql_fetch_array($resultado)))
{
$Nmb = $fila["Nombre"];
$Dir = $fila["Direccion"];
$Tel = $fila["Telefono"];
$Mail = $fila["Email"];

switch ($fila["Sexo"])
{
case "M": $Sexo="Masculino";
break;
case "F": $Sexo="Femenino";
break;
} // fin switch

// aki sakamos la fecha de nacimiento
if ($fila["FNac"] == "Pendiente")
{
$DD="1";
$MM="1";
$AA="1";
}
else
{
$i=0;
$fecha=strtok($fila["FNac"],"/");
while($fecha)
{
$separado[$i] = "$fecha";
$i++;
$fecha = strtok("/");
}
$DD=$separado[0];
$MM=$separado[1];
$AA=$separado[2];
}

}// fin while(($fila=mysql_fetch_array($resultado)))

} //fin if ($items >0)

mysql_close($con); // cerramos la konexion

// hacia abajo kontinua el else del if ($Envio)
?>
<br><br><br>

<table width="697" align="center" bgcolor="Green">
<tr>
<td>
<div align="center"><font face="Papyrus" size="3" color="#FFFFFF">Datos
Personales</font></div>
</td>
</tr>
</table>
<form method="post" action="<? echo $PHP_SELF ?>">
<table width="697" bgcolor="green">

<tr>
<td width="301">
<p><b><font size="2" face="Papyrus" color="#FFFFFF">Nombre: </font></b></p>
</td>
<td width="384">
<input type="text" name="Nmb" size="40" maxlength="30" value="<? echo $Nmb; ?>">
</td>
</tr>
<tr>
<td height="2" width="301">
<p><b><font size="2" face="Papyrus" color="#FFFFFF">Direkción: </font></b></p>
</td>
<td height="2" width="384">
<input type="text" name="Dir" size="70" value="<? echo $Dir; ?>" maxlength="150">
</td>
</tr>
<tr>
<td height="2" width="301">
<p><b><font size="2" face="Papyrus" color="#FFFFFF">Teléfono: </font></b></p>
</td>
<td width="384">
<input type="text" name="Tel" value="<? echo $Tel; ?>">
</td>
</tr>
<tr>
<td width="301">
<p><b><font size="2" face="Papyrus" color="#FFFFFF">Fecha de Nacimiento:
</font></b>
</td>
<td width="384"> <font size="2" face="Papyrus" color="#FFFFFF">
<select name="DD">
<option>Día
<?
for ($x=1; $x<=31;$x++)
{
if ($DD==$x) {
echo "<OPTION SELECTED ='".$x."' VALUE='".$x."' >".$x."n"; }
else {
echo "<OPTION VALUE='".$x."' >".$x."n"; }
}
?>
</select>
<select name="MM">
<option>Mes
<?
for ($x=1; $x<=12;$x++)
{
if ($MM==$x) {
echo "<OPTION SELECTED ='".$x."' VALUE='".$x."' >".$x."n"; }
else {
echo "<OPTION VALUE='".$x."' >".$x."n"; }
}
?>
</select>
<select name="AA">
<option>Año
<?
for ($x=2003; $x>=1950;$x--)
{
if ($AA==$x) {
echo "<OPTION SELECTED ='".$x."' VALUE='".$x."' >".$x."n"; }
else {
echo "<OPTION VALUE='".$x."' >".$x."n"; }
}
?>
</select>
<b><font size="1">(DD/MM/AAAA)</font></b></font> </td>
</tr>
<tr>
<td width="301">
<p><b><font size="2" face="Papyrus" color="#FFFFFF">Sexo: </font></b></p>
</td>
<td width="384"> <font size="2" face="Papyrus" color="#FFFFFF">
<select name="Sexo">
<?
if ($Sexo=="Femenino")
{ echo "<OPTION SELECTED='Femenino' VALUE='F'>Femeninon";
echo "<OPTION VALUE='M'>Masculinon";
}
else
{ echo "<OPTION VALUE='F'>Femeninon";
echo "<OPTION SELECTED='Masculino' VALUE='M'>Masculinon";
}
?>
</select>
</font> </td>
</tr>
<tr>
<td width="301">
<p><font size="2"><font size="2"><font face="Papyrus"><font face="Papyrus"><font color="#FFFFFF"><b>
<input type="hidden" name="Usr" value="<? echo $Usr; ?>">
</b></font></font></font></font></font></p>
</td>
</tr>
<tr>
<td width="301">
<p><b><font size="2" face="Papyrus" color="#FFFFFF">E-mail: </font></b></p>
</td>
<td width="384">
<input type="text" name="Mail" size="50" value="<? echo $Mail; ?>" maxlength="40">
</td>
</tr>
<tr>
<td width="301">
<p><font size="2"><font size="2"><font face="Papyrus"><font face="Papyrus"><font color="#FFFFFF"><b></b></font></font></font></font></font></p>
</td>
</tr>
</table>
<table width="697" align="center" bgcolor="Green">
<tr>
<td>
<div align="center">
<input type="submit" name="Envio" value="Aktualizar Datos">
</div>
</td>
</tr>
</table>
</form>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><a href="userpref.php?User=<? echo $Usr ?>"><img src="../Gifs/Buttons/PKOpciones2.gif" border="0"></a></p>
<?
} //fin del if ($Envio) {...} else {
?>
</div>
</body>
</html>


ahora ke si la aktualizacion de los datos la haces en el servidor y kieres ke el usuario vea los datos nuevos en kualkier momento, pues solo debes de poner un refresh en tu kabecera, esto es:

<?
header ("refresh: 10; url=$PHP_SELF");
?>

donde el numero 10 son 10 segundos ke tardara en hacer el refres de la pagina y la variable $PHP_SELF guarda el nombre de la pagina aktual.

espero esto te sirva y si tienes alguna duda, mandame un mail a [email protected]

ciao