Foros del Web » Programando para Internet » PHP »

Reenvio de Form

Estas en el tema de Reenvio de Form en el foro de PHP en Foros del Web. Hola a todos, hice un form que agrega elementos a una tabla, y los muestra en una tabla, hasta ahi todo lo hace muy bien, ...
  #1 (permalink)  
Antiguo 13/12/2012, 15:48
Avatar de danramglez  
Fecha de Ingreso: septiembre-2012
Mensajes: 70
Antigüedad: 11 años, 6 meses
Puntos: 2
Reenvio de Form

Hola a todos, hice un form que agrega elementos a una tabla, y los muestra en una tabla, hasta ahi todo lo hace muy bien, solo que cada vez que cargo la pantalla se agrega un nuevo campo con datos vacios, y quisiera saber si existe una funcion en PHP o JS que me ayude a que no se vuelva a reenviar la informacion a la tabla

Código HTML:
Ver original
  1. <table border="0" cellspacing="1" cellpadding="1">
  2. <form name="form1" action="">
  3. <P>Introduzca el nombre de una nueva refaccion <input type="text" name="refaccion">
  4. <p>Fecha: <input type="date" name="date">
  5. <P><input type="submit"  name="boton" action="" onclick="valida_envia()" value="Enviar" />
  6. <p>
  7. </form>
  8.     function valida_envia()
  9.     {
  10.     if (document.form1.refaccion.value.length==false)
  11.     {
  12.     alert("Tiene que escribir el nombre del producto")
  13.     document.form1.refaccion.focus()
  14.     return 0;
  15.     }
  16.     }
  17.  
  18.     </script>  
  19.     <?php
  20.    
  21.     #Conectamos con MySQL
  22.     $conexion = mysql_connect("localhost","root","")
  23.     or die ("Fallo en el establecimiento de la conexión");
  24.     mysql_select_db("hesk")
  25.     or die("Error en la seleccion de la base de datos");
  26.        
  27.     if (isset($_REQUEST['refaccion']))
  28.             {
  29.             $nombre = $_REQUEST['refaccion'];
  30.             }
  31.             else
  32.                 {
  33.                 $nombre = "";
  34.                 }
  35.                
  36.     if (isset($_REQUEST['date']))
  37.             {
  38.             $fecha = $_REQUEST['date'];
  39.             }
  40.             else
  41.                 {
  42.                 $fecha = "";
  43.                 }
  44.             insertar ($nombre,$fecha);   
  45.  
  46.     function insertar($nombre,$fecha)
  47.         {
  48.        
  49.         $sql= "insert into hesk_refacciones (nombre,fecha) values ('$nombre','$fecha')";
  50.                 $cadena = mysql_query ($sql);  
  51.              echo $sql;
  52.        
  53.         }
  54.         echo " <table border =1 align= center>" ;
  55.         echo "<tr>";
  56.         echo "<td>  Id </td>";
  57.         echo "<td> Nombre</td>";
  58.         echo "<td> Fecha</td>";
  59.         echo "<td> Modificar</td>";
  60.         echo "<td> Elimina</td>";
  61.         echo "</tr>";
  62.        
  63.         $result = mysql_query ("select * from hesk_refacciones" )
  64.         or die("Error en la consulta SQL");
  65.         while( $row = mysql_fetch_array ( $result ))
  66.         {
  67.         echo "<tr>";
  68.         echo "<td>".$row[0]."</td>";
  69.         echo "<td>".$row[1]."</td>";
  70.         echo "<td>".$row[2]."</td>";
  71.         echo "<td><a style=\"color:blue;\" href=\"modifica.php?id=".$row[0]."&nombre=".$row[1]."&fecha=".$row[2]."\"> modificar</a></td>";
  72.         echo "<td><a style=\"color:blue;\" href=\"borrar.php?&id=".$row[0]."\">Elimina </a></td>";
  73.         echo "</tr>";
  74.         }
  75.         echo "</table>";
  76.        
  77.     ?> 
  78.    
  79. </html>

Muchas gracias por su ayuda
__________________
"La funcion de un buen software es hacerlo parecer simple"

Última edición por danramglez; 13/12/2012 a las 15:56
  #2 (permalink)  
Antiguo 16/12/2012, 09:05
 
Fecha de Ingreso: septiembre-2010
Ubicación: Corrientes - Argentina
Mensajes: 37
Antigüedad: 13 años, 7 meses
Puntos: 2
Respuesta: Reenvio de Form

Tu error esta en dejar afuera de los if's que controlan que se haya enviado las variables del formulario justamente la consulta que inserta...

Cita:
Iniciado por danramglez Ver Mensaje
Código HTML:
Ver original
  1. if (isset($_REQUEST['refaccion']))
  2.             {
  3.             $nombre = $_REQUEST['refaccion'];
  4.             }
  5.             else
  6.                 {
  7.                 $nombre = "";
  8.                 }
  9.                
  10.     if (isset($_REQUEST['date']))
  11.             {
  12.             $fecha = $_REQUEST['date'];
  13.             }
  14.             else
  15.                 {
  16.                 $fecha = "";
  17.                 }
  18.             insertar ($nombre,$fecha);
Deberías plantearlo así:

Código PHP:
if (isset($_REQUEST['refaccion']) && isset($_REQUEST['date'])){ 
$nombre $_REQUEST['refaccion']; 
$fecha $_REQUEST['date']; 
insertar ($nombre,$fecha);    
}else{ 
$nombre ""
$fecha ""

Prueba reemplazar eso y me avisas...
__________________
Si esta vida te da la espalda, siempre puede tocarle el c...

Última edición por juanmanuel19686; 16/12/2012 a las 09:10

Etiquetas: html, mysql, reenvio, sql, tabla, 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 14:19.