Foros del Web » Programando para Internet » PHP »

Borrar campos del formulario al hacer click en el boton atras del navegador

Estas en el tema de Borrar campos del formulario al hacer click en el boton atras del navegador en el foro de PHP en Foros del Web. Resulta que estoy haciendo una página web con php, tengo autores.php que tiene un formulario, el cual obtiene los datos de autores de libros. Al ...
  #1 (permalink)  
Antiguo 03/11/2010, 00:58
 
Fecha de Ingreso: octubre-2009
Mensajes: 20
Antigüedad: 15 años
Puntos: 0
Borrar campos del formulario al hacer click en el boton atras del navegador

Resulta que estoy haciendo una página web con php, tengo autores.php que tiene un formulario, el cual obtiene los datos de autores de libros. Al hacer click en el botón guardar, este ejecuta una acción a través de otro guarda_autores.php utilizando el método post. Pero resulta que al hacer click en el botón de atrás del navegador, regreso a autores.php y los datos que ingresé al formulario siguen alli, quisiera que se borraran, he investigado todo el dia en internet, y no encuentro a nadie que diga de manera clara como lo hizo. Solo he visto muchas posibles soluciones utilizando sesiones y variables de sesión, redireccionamiento de header, body unload, configurar la sección meta para que no guarde caché, hacer unload a las variables post, en fin, todo un enredijo. Si les sirve, les muestro el código fuente que estoy utilizando.

Código:
<html>
    <head>
        <title> Autores </title>
        <script type="text/javascript" src="../JavaScript/botones_autor.js"></script>
    </head>
    <body>

<form id="form_autores" name="form_autores" method="post" action="">
  <p>
    <label for="ID_autor">Codigo de autor</label>
    <input type="text" name="ID_autor" id="ID_autor" />
  </p>
  <p>
    <label for="Nombre">Nombre y Apellido</label>
    <input type="text" name="Nombre_y_apellido" id="Nombre_y_apellido" />
  </p>
  <p>
    <label for="Pais_de_origen">Pais de origen</label>
    <input type="text" name="Pais_de_origen" id="Pais_de_origen" />
  </p>
  <p>&nbsp;</p>
  <p>
    <label for="Guardar"></label>
  </p>
</form>
<input type="submit" name="Guardar" id="Guardar" value="Guardar" />
<input type="submit" name="ver_autor" id="ver_autor" value="Ver Autores" />
</body>
</html>





Ahora el código del php

<?php
session_start();
if (empty($_POST['Nombre_y_apellido']) || empty($_POST['Pais_de_origen']) 
        || empty($_POST['ID_autor']))
{

echo "<script>alert('Todos los campos son obligatorios')</script>";
}
else
{
$codigo_autor = $_POST[ID_autor];
$Nombre_y_apellido = $_POST[Nombre_y_apellido];
$Pais_de_origen = $_POST[Pais_de_origen];
$_SESSION["codigo_autor"];
$_SESSION["Nombre_y_apellido"];
$_SESSION["Pais_de_origen"];

$db = mysql_connect('localhost','root','contraseña');
if (mysqli_connect_errno())

    {
echo "<h3>Error, no se pudo conectar con la base de datos intente más tarde</h3>";
exit;
}

mysql_select_db("libreria",$db);
$consulta = "INSERT INTO autor VALUES('$codigo_autor','$Nombre_y_apellido','$Pais_de_origen')";
mysql_query($consulta,$db);
$my_error = mysql_error($db);

if(!empty($my_error))
        {
        echo "Ha habido un error al insertar los valores. $my_error";
    }
    else
    {
        echo "Se ha a&ntilde;adido el autor correctamente";
        mysql_close();
        UNSET($_SESSION["codigo_autor"]);
        UNSET($_SESSION["Nombre_y_apellido"]);
        UNSET($_SESSION["Pais_de_origen"]);
        session_destroy();
        header('location: ../HTML/autoreshtml.php');
}
}

?>
P.D. Como tengo el formulario con 2 botones, le asigno a cada uno su action con el evento onclick con un javascript, por eso es que el formulario en si, no tiene un action definido, sino acion = "".

De antemano, les agradezco mucho
  #2 (permalink)  
Antiguo 03/11/2010, 02:40
 
Fecha de Ingreso: septiembre-2009
Ubicación: Managua
Mensajes: 128
Antigüedad: 15 años, 2 meses
Puntos: 5
Respuesta: Borrar campos del formulario al hacer click en el boton atras del navegado

mmmmm lo que puedes hacer en tu caso es limpiar el formulario con javascript al cargar la pagina.

mas o menos algo asi:
Cita:
<script languaje="javascript">
function limpiarform(){
document.nombre_de_tu_formulario.reset();
}
</script>
y en el load de tu pagina pones asi

Cita:
<body onLoad="limpiarform">
El codigo javascript va entre las etiquetas <head></head>, no se si hace falta la aclaracion.

Saludos y mucha suerte :P

Etiquetas: atras, borrar, campos, botones, navegadores, formulario
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 08:31.