Foros del Web » Programando para Internet » Javascript »

Completar un formulario con javascript

Estas en el tema de Completar un formulario con javascript en el foro de Javascript en Foros del Web. Que tal, quería saber si me pueden ayudar con este problema: Tengo un formulario al que se le agregan campos dinamicamente con javascript : @import ...
  #1 (permalink)  
Antiguo 05/05/2011, 17:31
Avatar de shujidan  
Fecha de Ingreso: abril-2011
Mensajes: 121
Antigüedad: 13 años
Puntos: 5
Completar un formulario con javascript

Que tal, quería saber si me pueden ayudar con este problema:
Tengo un formulario al que se le agregan campos dinamicamente con javascript:

Código Javascript:
Ver original
  1. <br><legend>Categoria</legend> <input id="categoria" name="categoria" onKeyUp="javascript:completarForm(this);" type="text" value="<?if (isset($_POST['categoria'])) echo $_POST['categoria'];?>">
  2. <div id="formcomps"></div>

Funcion:
Código Javascript:
Ver original
  1. //Esta funcion imprime otro campo si categoria == "Anime"
  2. function completarForm(obj){
  3.     if (obj.value == "Anime") document.getElementById('formcomps').innerHTML = "<br><br><legend>Fansub</legend><input type='text' name='fansub'>";
  4. }


El problema es que luego de validar que el campo "fansub" no se encuentre vacío con php, el campo "fansub" que se creó con un evento de javascript desaparece después del submit, alguien sabe como evitar esto?


Código PHP:
Ver original
  1. //Esto hace que se recargue la pagina con el formulario completo, pero sin el campo "fansub"
  2. if ($_POST['fansub'] == "") echo "Necesitas especificar el fansub."

Última edición por shujidan; 05/05/2011 a las 17:43
  #2 (permalink)  
Antiguo 05/05/2011, 17:57
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años
Puntos: 344
Respuesta: Completar un formulario con javascript

Por favor, pon el código completo o no nos enteraremos de nada.

Por lo que veo, creas un input con javascript y ¿quieres que al recargar siga apareciendo?

Si es eso no puedes sólo hacerlo con javascript. Tienes que guardar en el servidor de alguna manera que ese cambio se ha hecho (me refiero en el archivo php encargado de procesar el formulario).
  #3 (permalink)  
Antiguo 05/05/2011, 18:03
Avatar de shujidan  
Fecha de Ingreso: abril-2011
Mensajes: 121
Antigüedad: 13 años
Puntos: 5
Respuesta: Completar un formulario con javascript

Pues es todo el código involucrado.
Al hacer submit desaparece el campo "fansub" que habia creado con javascript al escribir la palabra "Anime", como tendría que modificar el php para que permaneciera el campo fansub en la pagina?

Última edición por shujidan; 05/05/2011 a las 18:10
  #4 (permalink)  
Antiguo 05/05/2011, 18:24
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años
Puntos: 344
Respuesta: Completar un formulario con javascript

He visto que pones que si el usuario elige la categoria Anime aparece ese nuevo campo. Ese campo se tendrá que guardar en algún sitio de la base de datos me imagino, sino no le veo mucho sentido.

Veo otro problema y es que no guardas nada en la base de datos o por lo menos no lo has puesto (si lo haces pon el código). Me refiero al campo categoría. Ese campo solo se te guarda mientras el usuario está en la página. ¿Que pasa cuando cierra y vuelve a entrar? Desaparece lo que ha introducido el usuario.

Acláranos eso antes de nada.
  #5 (permalink)  
Antiguo 05/05/2011, 18:57
Avatar de shujidan  
Fecha de Ingreso: abril-2011
Mensajes: 121
Antigüedad: 13 años
Puntos: 5
Respuesta: Completar un formulario con javascript

Así es, cuando todo el formulario está completo (incluyendo el campo fansub, si categoria == anime) se inserta todo en un registro de la base de datos.

Código PHP:
Ver original
  1. if ($_POST['categoria'] != ""){
  2.     if ($_POST['categoria'] == "Anime"){
  3.         if ($_POST['fansub'] != ""){
  4.             $con=mysql_connect();
  5.             mysql_select_db();
  6.             mysql_query("INSERT INTO aportes values('".$_SESSION['user']."',...,'".$_POST['categoria']."','".$_POST['fansub']."';");
  7.             mysql_close($con);
  8.         }else echo "Necesitas especificar el fansub";
  9.     }else {  //Si la categoria no es anime, se deja vacía la columna de fansub.
  10.             $con=mysql_connect();
  11.             mysql_select_db();
  12.             mysql_query("INSERT INTO aportes values('".$_SESSION['user']."',...,'".$_POST['categoria']."','';");
  13.             mysql_close($con);
  14.     }
  15. }else echo "Falta la categoría";

Última edición por shujidan; 05/05/2011 a las 19:25
  #6 (permalink)  
Antiguo 05/05/2011, 23:02
 
Fecha de Ingreso: noviembre-2005
Mensajes: 426
Antigüedad: 18 años, 5 meses
Puntos: 87
Respuesta: Completar un formulario con javascript

Debe haber un problema con tu codigo, los <input> añadidos dinamicamente siempre pasan la informacion, ejemplo:

Código HTML:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  4. <title>Documento sin título</title>
  5. </head>
  6.  
  7. <?php
  8. print('<pre>');
  9. print_r($_POST);
  10. print('</pre>');
  11.  
  12. ?>
  13.  
  14. window.onload = function(){
  15.  
  16.  
  17. document.getElementById("change_form").onclick = function(){
  18.    
  19.     var el_form = document.getElementById("form");
  20.     el_form.innerHTML += "<input type='text' name='hentai' />";
  21.     var contenido = el_form.parentNode.innerHTML
  22.     el_form.parentNode.innerHTML = contenido;
  23.     return false;
  24.     //var contenedor = document.getElementById("contenedor_form").innerHTML;   
  25.  
  26. }
  27.    
  28. }
  29. <a id="change_form" href="#" >Agregar campo a formulario</a> |
  30.  
  31. <div id="contenedor_form">
  32. <form id="form" method="post" action="testculo.php">
  33. <input type="text" name="titulo_del_hentai" /> <input type="checkbox" /> <input id="submit" type="submit" />
  34. </form>
  35. </div>
  36. </body>
  37. </html>

Coloca todo el formulario que tienes y todo el javascript a ver.
  #7 (permalink)  
Antiguo 05/05/2011, 23:15
Avatar de Sotelio  
Fecha de Ingreso: mayo-2011
Ubicación: Santiago de Chile
Mensajes: 68
Antigüedad: 13 años
Puntos: 21
Respuesta: Completar un formulario con javascript

Hola

No entendí bien si:
¿quieres que el campo permanezca cuando envías el formulario y lo vuelves a cargar?
o
¿El campo que agregas con javascript parece que no existe cuando envías el formulario?

Sotelio
  #8 (permalink)  
Antiguo 06/05/2011, 10:19
Avatar de shujidan  
Fecha de Ingreso: abril-2011
Mensajes: 121
Antigüedad: 13 años
Puntos: 5
Respuesta: Completar un formulario con javascript

El campo que agrego con javascript existe cuando envío el formulario, pero al comprobar que está vacío el campo, aparece un mensaje que le dice al usuario que está vacío, pero el campo desaparece por alguna razón al mandar el formulario con el boton.
  #9 (permalink)  
Antiguo 06/05/2011, 10:22
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años
Puntos: 344
Respuesta: Completar un formulario con javascript

Te desaparece porque el javascript sólo dura en la ejecución actual de la página, si recargas desaparece. Para que siga apareciendo tienes que hacer uso de PHP.

Etiquetas: function, php, 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 12:09.