Ver Mensaje Individual
  #1 (permalink)  
Antiguo 03/10/2009, 05:44
Avatar de neodani
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!