Foros del Web » Programando para Internet » PHP »

redireccionar sin perder los datos que ya se habian introducido en los campos

Estas en el tema de redireccionar sin perder los datos que ya se habian introducido en los campos en el foro de PHP en Foros del Web. Un cordial saludo tengo un formulario con muchos campos ay un campo de adjuntar un archivo que tiene que ser una imagen jpg, gif o ...
  #1 (permalink)  
Antiguo 16/03/2012, 15:02
 
Fecha de Ingreso: noviembre-2010
Ubicación: Bogotá
Mensajes: 41
Antigüedad: 14 años
Puntos: 1
Busqueda redireccionar sin perder los datos que ya se habian introducido en los campos

Un cordial saludo

tengo un formulario con muchos campos ay un campo de adjuntar un archivo que tiene que ser una imagen jpg, gif o png si el archivo subido cumple todos los datos se guardan en una base de datos, Lo que quiero hacer es que si no se cumple lo regresa al formulario de nuevo.

este es mi código y funciona perfectamente pero quiero que cuando se regrese me deje el formulario con la información que se había introducido previamente que lo unico que tenga que ingresar de nuevo sea la imagen porque así como esta borra todos los campos y así no me sirve porque son muchos campos

pagina form.php
en esta pagina tengo como 7 campos aca solo pongo unos cuantos para no extenderme
Código HTML:
Ver original
  1. <form action="guardar.php" method="post" enctype="multipart/form-data" name="form1" id="form1">
  2.   <p>Nombre
  3.     <label>
  4.     <input name="nombre" type="text" id="nombre" />
  5.     </label>
  6.   </p>
  7.   <p>Cedula
  8.     <label>
  9.     <input name="cedula" type="text" id="cedula" />
  10.     </label>
  11.   </p>
  12.   <label>
  13.   <input type="file" name="file" />
  14.   </label>
  15.   <p>
  16.     <label>
  17.     <input type="submit" name="Submit" value="Enviar" />
  18.     </label>
  19.   </p>
  20. </form>

pagina guardar.php
Código PHP:
Ver original
  1. $nombre  = $_FILES["userfile2"]["name"];
  2. $extension = explode(".",$nombre);  
  3.  
  4. $num = count($extension)-1;
  5.  
  6. if($extension[$num] != "jpg" && $extension[$num] != "gif" && $extension[$num] != "png")
  7. {
  8. header("Location:form_nueva_fuente.php?mensaje=1");
  9. //echo "esto no es una imagen";
  10. }
  11. else
  12.  
  13. //si la imagen es correcta aca guardo los datos, esto ya lo se hacer solo necesito que
  14.  //cuando redireccione el formulario quede con los datos que se habian introducido

Muchas gracias de antemano
  #2 (permalink)  
Antiguo 16/03/2012, 15:04
 
Fecha de Ingreso: noviembre-2010
Ubicación: Bogotá
Mensajes: 41
Antigüedad: 14 años
Puntos: 1
Respuesta: redireccionar sin perder los datos que ya se habian introducido en los cam

yo utilizo el header("Location:form_nueva_fuente.php"); pero si ay otra forma vienbenida sea
  #3 (permalink)  
Antiguo 16/03/2012, 15:26
 
Fecha de Ingreso: agosto-2011
Mensajes: 59
Antigüedad: 13 años, 3 meses
Puntos: 8
Respuesta: redireccionar sin perder los datos que ya se habian introducido en los cam

Una sugerencia, a ver si te convence, por qué no guardas los valores en una variable de session y si todo va bien borras la variable de la sesión.
Y luego en el formulario si la session tiene valores los pones y si no los dejas vacios.

Si no te gusta lo de las sesiones también puedes mandar los valores por get en la url que redireccionas (e igualmente los recoges en el formulario, si tiene valor)

O hacerlo por post con variables ocultas y redirigir con javascript .
  #4 (permalink)  
Antiguo 16/03/2012, 15:42
 
Fecha de Ingreso: noviembre-2010
Ubicación: Bogotá
Mensajes: 41
Antigüedad: 14 años
Puntos: 1
Respuesta: redireccionar sin perder los datos que ya se habian introducido en los cam

lo estoy haciendo con get y me funciona de esta manera:
header("Location:form_nueva_fuente.php?mensaje=1 & nomG=$Nom_general & cat=$categoria");

y al otro lado los coloco en cada textbox o en el elemento donde tenga que ir asi:
<input name="Nom_general" type="text" id="Nom_general" value="<?php if (isset($_GET['nomG'])) echo $_GET['nomG']; ?>"/>

y me funciona perfecto
lo que pasa es que tengo una lista desplegable o mejor dicho varias que se cargan con unos valores de la base de datos asi:

<option value="0">Seleccione Productor/Importador</option>
<?php
include("conexion.php");
$result = mysql_query("SELECT * FROM productor_importador");

while($row = mysql_fetch_array($result))
{
echo "<option value='".$row["Valor"]."'>".$row["productor"]."</option>";

}
?>
</select>

como se observa ya tienen un valor entonces como le puedo colocar el valor que trage con el get porque en la caja de texto lo podia hacer porque esta no tenia ningun valor
  #5 (permalink)  
Antiguo 16/03/2012, 16:21
 
Fecha de Ingreso: agosto-2011
Mensajes: 59
Antigüedad: 13 años, 3 meses
Puntos: 8
Respuesta: redireccionar sin perder los datos que ya se habian introducido en los cam

Pues dentro de tu while le tienes que poner una condicion de si es igual
y para el que sea igual le tienes que poner

selected="selected"

http://www.w3schools.com/tags/att_option_selected.asp
  #6 (permalink)  
Antiguo 16/03/2012, 16:49
Avatar de bLEx  
Fecha de Ingreso: mayo-2008
Ubicación: Villa Alemana, Chile
Mensajes: 181
Antigüedad: 16 años, 6 meses
Puntos: 5
probar con post

Lo otro que puedes hacer es pasarlos con post y el guardar lo haces en el mismo archivo.

Como value le colocas el $_POST['campo'] y para los select comparas como te comento la amiga.

La idea del get puede servir pero se ve feo pasar tantos valores por la URL

Etiquetas: campos, formulario, perder, redireccionar
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 12:15.