Foros del Web » Programando para Internet » PHP »

Problema con formulario

Estas en el tema de Problema con formulario en el foro de PHP en Foros del Web. Buenas, tengo este formulario para actualizar varios datos de un perfil, pero cuando actualizo, tengo que escribir todo de nuevo porque si dejo uno en ...
  #1 (permalink)  
Antiguo 06/03/2011, 23:57
Avatar de waldragon  
Fecha de Ingreso: mayo-2010
Mensajes: 735
Antigüedad: 14 años
Puntos: 55
Problema con formulario

Buenas, tengo este formulario para actualizar varios datos de un perfil, pero cuando actualizo, tengo que escribir todo de nuevo porque si dejo uno en blanco, borra lo que estaba escrito de antes, como lo puedo solucionar, gracias.

if($_POST['editperfil']) {
$sql = "UPDATE users SET n_nombre = '". $_POST['n_nombre'] . "', n_descripcion = '". $_POST['n_descripcion'] . "', n_telefono = '". $_POST['n_telefono'] . "', n_direccion = '". $_POST['n_direccion'] . "', n_web = '". $_POST['n_web'] . "', n_email = '". $_POST['n_email'] . "', n_otros = '". $_POST['n_otros'] . "' WHERE id=" . $_SESSION['USERID']. ";";
mysql_query($sql);
}
else{echo"";}
?>
<form action="panel.php?p=1"
method="post">
<table>
<tr>
<td>Nombre de tu Negocio:</td>
<td><input type="text" name="n_nombre"></td>
</tr>
<tr>
<td>Describe tu negocio en detalle:</td>
<td><textarea rows="5" title="MENSAJE DE BIENVENIDA A TU PERFIL." class="formu" name="n_descripcion" cols="65"></textarea></td>
</tr>
<tr>
<td>Telefono: Ingresa uno o varios telefonos de tu negocio</td>
<td><input type="text" name="n_telefono"></td>
</tr>
<tr>
<td>Direccion: Ingresa la direccion de tu negocio</td>
<td><input type="text" name="n_direccion"></td>
</tr>
<tr>
<td>sitio web</td>
<td><input type="text" name="n_web"></td>
</tr>
<tr>
<td>E-Mail</td>
<td><input type="text" name="n_email"></td>
</tr>
<tr>
<td>Otros datos: Estos se mostraran en el fondo de la pagina</td>
<td><textarea rows="5" title="OTROS DATOS QUE QUIERAS COMPARTIR." class="formu" name="n_otros" cols="65"></textarea></td>
</tr>
<tr>
<td></td>
<td><input type="submit" name="editperfil" value="MODIFICAR PERFIL"><input type="reset" name="Limpiar" value="LIMPIAR"></td>
<td></td>
</tr>
</table>
</form>
  #2 (permalink)  
Antiguo 07/03/2011, 00:22
 
Fecha de Ingreso: marzo-2011
Ubicación: Palmira
Mensajes: 35
Antigüedad: 13 años, 1 mes
Puntos: 1
Respuesta: Problema con formulario

Vamos a ver si te entendí, lo que quieres es que cuando actualices los datos vuelvan a aparecer en el formulario los datos que acabas de ingresar ??

de ser asi puedes hacerlo mostrando en los campos los mismos datos que utilizas en el UPDATE sql:

Código PHP:

if($_POST['editperfil']) {
$sql "UPDATE users SET n_nombre = '"$_POST['n_nombre'] . "', n_descripcion = '"$_POST['n_descripcion'] . "', n_telefono = '"$_POST['n_telefono'] . "', n_direccion = '"$_POST['n_direccion'] . "', n_web = '"$_POST['n_web'] . "', n_email = '"$_POST['n_email'] . "', n_otros = '"$_POST['n_otros'] . "' WHERE id=" $_SESSION['USERID']. ";";
mysql_query($sql);

 
// Le das los valores a las variables:

  
$nombre $_POST['n_nombre'] ;
  
$descripcion $_POST['n_descripcion '] ;
  
$telefono$_POST['n_telefono'] ;
  
$direccion$_POST['n_direccion'] ;
  
$web$_POST['n_web'] ;
  
$email$_POST['n_email'] ;
  
$otros$_POST['n_otros'] ;


}
else{
  echo
"";
  
$nombre "";
  
$descripcion "" ;
  
$telefono"";
  
$direccion"" ;
  
$web"";
  
$email"";
  
$otros"";
}
?> 

Código HTML:
<form action="panel.php?p=1" method="post">
  <table>
    <tr>
     <td>Nombre de tu Negocio:</td>
     <td><input type="text" name="n_nombre" 
                        value="<?php echo($nombre) ?>"></td>
    </tr>
    <tr>
     <td>Describe tu negocio en detalle:</td>
     <td><textarea rows="5" title="MENSAJE DE BIENVENIDA A TU PERFIL." class="formu" name="n_descripcion" cols="65" value="<?php echo($descripcion) ?>"></textarea></td>
</tr>
<tr>
<td>Telefono: Ingresa uno o varios telefonos de tu negocio</td>
<td><input type="text" name="n_telefono" value="<?php echo($telefono) ?>"></td>
</tr>
<tr>
<td>Direccion: Ingresa la direccion de tu negocio</td>
<td><input type="text" name="n_direccion" value="<?php echo(direccion) ?>"></td>
</tr>
<tr>
<td>sitio web</td>
<td><input type="text" name="n_web" value="<?php echo($web) ?>"></td>
</tr>
<tr>
<td>E-Mail</td>
<td><input type="text" name="n_email" value="<?php echo($email) ?>"></td>
</tr>
<tr>
<td>Otros datos: Estos se mostraran en el fondo de la pagina</td>
<td><textarea rows="5" title="OTROS DATOS QUE QUIERAS COMPARTIR." class="formu" name="n_otros" cols="65" value="<?php echo($otros) ?>"></textarea></td>
</tr>
<tr>
<td></td>
<td><input type="submit" name="editperfil" value="MODIFICAR PERFIL"><input type="reset" name="Limpiar" value="LIMPIAR"></td>
<td></td>
</tr>
</table>
</form> 

No lo probe pero creo que debe funcionar.
  #3 (permalink)  
Antiguo 07/03/2011, 01:31
Avatar de waldragon  
Fecha de Ingreso: mayo-2010
Mensajes: 735
Antigüedad: 14 años
Puntos: 55
Respuesta: Problema con formulario

Me refiero a otra cosa, haber sime puedo explicar mejor:

Ejemplo
Tengo un formulario para modificar tres campos de una bd:
-nombre
-apellido
-edad

Y tengo en dichos campos esta informacion:
-juan
-perez
-25

y ahora quiero modificar solo el campo edad, entonces uso mi formulario y solo relleno este campo y le pongo 30, el problema es que como no volvi a rellenar los otros dos campos, la informacion que estaba anteriormente se borra, queda en blanco, y cada vez que quiero modificar un solo dato, tengo que escribir todos de nuevo.
... y ese es un problema porque en el caso real tengo un texto de bienvenida y una descripcion que son textos largos, se entiende? gracias.
  #4 (permalink)  
Antiguo 07/03/2011, 02:18
 
Fecha de Ingreso: marzo-2011
Mensajes: 6
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: Problema con formulario

Has una comprobación de campos
if ($_POST['nombre'] !="" && $_POST['nombre'] != $_SESSION['nombre'] ) // la var. sesión la guardas desde la base de datos, ya que así sabes si ha cambiado
{
$sql = "UPDATE ...."; mysql_query($sql); ....
}
if ($_POST['apellido'] != "" && ... ) { } //similar pero con otro campo.

__
espero que responda a tu pregunta :)

Etiquetas: 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 19:51.