Foros del Web » Programando para Internet » PHP »

No perder valor de un campo "textarea" en formulario

Estas en el tema de No perder valor de un campo "textarea" en formulario en el foro de PHP en Foros del Web. Buenas, He conseguido guardar las variables del formulario una vez enviadas al servidor para verificarlas, y si el formulario tiene algún campo vacío muestra un ...
  #1 (permalink)  
Antiguo 03/10/2009, 05:44
Avatar de neodani  
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 1 mes
Puntos: 20
No perder valor de un campo "textarea" en formulario

Buenas,

He conseguido guardar las variables del formulario una vez enviadas al servidor para verificarlas, y si el formulario tiene algún campo vacío muestra un mensaje de error, pero no pierde los campos que el usuario ha rellano a excepción del TEXTAREA, este es mi problema.

He visto que el textarea no tiene campo "value" por lo que imagino que por este motivo esta fallando la técnica de coger las variables por POST, guardarlas en sesiones en el servidor y hacer el echo de la sesión en el campo value del formulario.

Formulario
Código php:
Ver original
  1. <div id="formulario">
  2.         <form action="/includes/procesa_contactar2.php" method="post" id="contactar">
  3.         <table summary="Formulario Contactar">
  4.             <tbody>
  5.                 <tr>
  6.                     <th scope="row" id="num1" class="nombre-campo">Nombre<br /></th>
  7.                     <td><input value="<?php echo $_SESSION['nombre'] ?>" name="nombre" type="text" id="nombre" size="30" /></td>               
  8.                 </tr>
  9.                 <tr class="odd">
  10.                     <th scope="row" id="num2" class="nombre-campo">Apellidos<br /></th>
  11.                     <td><input value="<?php echo $_SESSION['apellidos'] ?>" name="apellidos" type="text" id="apellidos" size="30"/></td>           
  12.                 </tr>
  13.                 <tr>
  14.                     <th scope="row" id="num3" class="nombre-campo">Correo electrónico<br /></th>
  15.                     <td><input value="<?php echo $_SESSION['correo'] ?>"name="correo" type="text" id="correo" size="30"/></td>             
  16.                 </tr>
  17.                
  18.                 <tr class="odd">
  19.                     <th scope="row" id="num4" class="nombre-campo">Teléfono<br /></th>
  20.                     <td><input value="<?php echo $_SESSION['telefono'] ?>" name="telefono" type="text" id="telefono" size="30"/></td>          
  21.                 </tr>
  22.                 <tr>
  23.                     <th scope="row" id="num5" class="nombre-campo">Comentarios<br /></th>
  24.                     <td><input value="<?php echo $_SESSION['comentarios'] ?>" name="comentarios" style="width:88%" rows="7" cols="3" id="comentarios"></input></td>        
  25.                 </tr>
  26.             </tbody>
  27.         </table>
  28.             <div><input name="submit" type="submit" class="btn_enviar" value="Enviar Formulario"/></div>
  29.             <div class="clear"></div>
  30.  
  31.         </form>
  32.     </div> <!-- final #formulario -->

Validación servidor (reduzco el código solo a la parte que nos interesa)

Código php:
Ver original
  1. $nombre = utf8_decode(trim($_POST['nombre']));
  2. $apellidos = utf8_decode(trim($_POST['apellidos']));
  3. $correo = utf8_decode(trim($_POST['correo']));
  4. $telefono = utf8_decode(trim($_POST['telefono']));
  5. $_SESSION['comentarios']=$_POST['comentarios'];
  6.  
  7. $comentarios = utf8_decode(nl2br(trim($_POST['comentarios'])));
  8. $_SESSION['nombre']=$nombre;
  9. $_SESSION['apellidos']=$apellidos;
  10. $_SESSION['correo']=$correo;
  11. $_SESSION['telefono']=$telefono;

No sé por donde pillarlo

Muchas gracias de antemano!
  #2 (permalink)  
Antiguo 03/10/2009, 05:59
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: No perder valor de un campo "textarea" en formulario

no veo ningún textarea en el código (textarea e input text son dos cosas distintas), además las etiqutas input cierran así:

<input type="" ... />

el input de comentarios no tiene type="", supongo que si ese es tu textarea, debes cambiar input por textarea y el textarea si lleva el cierre </textarea>
  #3 (permalink)  
Antiguo 03/10/2009, 10:15
Avatar de neodani  
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 1 mes
Puntos: 20
Respuesta: No perder valor de un campo "textarea" en formulario

Opción incorrecta

Código php:
Ver original
  1. <tr>
  2.  
  3.                     <th scope="row" id="num5" class="nombre-campo">Comentarios<br /></th>
  4.  
  5.                     <td><textarea value="<?php echo $_SESSION['comentarios'] ?>" name="comentarios" style="width:88%" rows="7" cols="3" id="comentarios"></textarea></td>        
  6.  
  7.                 </tr>


Solucionado:

Código php:
Ver original
  1. <tr>
  2.                     <th scope="row" id="num5" class="nombre-campo">Comentarios<br /></th>
  3.                     <td><textarea name="comentarios" style="width:88%" rows="7" cols="3" id="comentarios"><?php echo $_SESSION['comentarios'] ?></textarea></td>           
  4.                 </tr>

No caí a la primera, y mira que era claro :P

Un saludo,
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 06:32.