Hacer que me carge de nuevo el form

jmfp26
23 de Marzo del 2004
Hola Grupo:

Tengo una pagina donde doy de alta, y cuando le doy a grabar quiero que vuelva a dejarme meter datos hasta que yo quiera salir con el enlace volver. Este es mi codigo, como lo puedo conseguir?.

Gracias
Saludos
<html>
<head>
</head>
<body>
<table valign="top" width="100%">
<td class="menu" width="907">&nbsp;</td>
<td class="menu" width="71">[<a href="Salir.php?offset=<?php echo $offset;?>" onClick="javascript:window.close();">Salir</a>]</td>
</table>
<?php
if ($grabar)
{
//Aqui inserto los datos
?>
<script language="JavaScript">
alert("¡ Atención !. El registro se ha guardado correctamente.");
</script>
<?php
}
else
{
?>
<tr width="100%" height="88%" valign="top">
<td valign="top" align="center" colspan="2">
<form name="form_alta" action="alta.php" method="post">
<table width="100%" border="1">
<tr>
<td width="22%"><strong><div align="center"><font color="#000000">NOMBRE</font></div></strong></td>
<td width="3%"><strong>
<div align="center"><font color="#000000">CODIGO</font></div>
</strong></td>
</tr>
<tr>
<td><input name="nombre" type="text" value="" size="34" maxlength="40"></td>
<td><input name="uid" type="text" id="uid" value="" size="2" maxlength="3"></td>
</tr>
</table>
<table width="100%" height="16%">
<tr valign="top">
<td height="70%" align="center">
<input class="grabar" type="submit" name="grabar" value="Grabar">
</td>
</tr>
</table>
</form>
<?php
}
?>
</body>
</html>


Bund
23 de Marzo del 2004
Hmmm. No creo que window.location='<?= $PHP_SELF ?> sea la solución correcta ya que es posible que podas obtener "Page has expired" y el mensaje "click here to resend the information" lo que podría causar duplicidad en el ingreso de datos. Pueda que me equivoque ya que no lo he probado hacer.

En mi humilde opinion, yo tampoco usaría JavaScrip para dejarle saber al usuario que la información fue ingresada correctamente. Podés usar PHP para eso. en el area donde insertas los datos al DB, podés ver si los datos fueron ingresados correctamente, si no lo fueron, entonces de ahi mismo, en lugar de darle al usuario el MySQL error, un mensaje predefinido. Por ejemplo:

<pre>
if ($grabar){
//your sql query;
$query = "insert into 'YourTable' ....";
$insert = @mysql_query($query);

if($insert){
echo("Record ha sido grabado");
} else{
die(mysql_error());
//o en lugar del de arriba
echo("ocurruió un error.... blah blah blah");
}
</pre>


vlc
23 de Marzo del 2004
<script language="JavaScript">
alert("¡ Atención !. El registro se ha guardado correctamente.");
window.location='<?= $PHP_SELF ?>';
</script>