Foros del Web » Programando para Internet » Javascript »

Formularios dinámicos???

Estas en el tema de Formularios dinámicos??? en el foro de Javascript en Foros del Web. Buenas, Veréis tengo un problema a la hora de crear formularios dinámicos para su tratamiento en código servidor. Tengo hecho este formulario de ejemplo, esta ...
  #1 (permalink)  
Antiguo 28/03/2006, 02:27
Avatar de MarioNunes  
Fecha de Ingreso: agosto-2005
Mensajes: 280
Antigüedad: 18 años, 7 meses
Puntos: 1
Formularios dinámicos???

Buenas,

Veréis tengo un problema a la hora de crear formularios dinámicos para su tratamiento en código servidor.


Tengo hecho este formulario de ejemplo, esta es la idea que necesito ya que dependiendo de N parámetros se genera en el div un select un input con o sin control de datos que se introducen, por lo que a nivel visual es lo que necesito.

Código HTML:
<html>
 <head>
  <title>Demo</title>
 </head>
<body> 
<script language="JavaScript">
  var Informacion_GeneralArray;
  Informacion_GeneralArray=["General","Configuracion","Prueba1"]; 
  
  function ValoresGeneral(v, capa) 
  { // el tratamiento en sí... 
  var NomArray = eval(v + "_GeneralArray"); 
  var str = '<SELECT name="dato" class="edit">'; 
  str += '<OPTION value="" SELECTED>[ Valores ]</OPTION>'; 
  for (x=0;x < NomArray.length;x++){ 
    str+='<OPTION value="'+NomArray[x]+'">'+NomArray[x]+'</OPTION>'; 
  } 
  str += '</SELECT>'; 
  document.getElementById(capa).innerHTML = str; 
  } 
</script> 

<table width="400" align="center"> 
<form action="prueba.php" name="modgeneral1" method="post">  
<tr>
  <td>
    <select name="nombre" class="edit" onchange="ValoresGeneral(this.value,'valoresgeneral');">
	 <option value=""></option>
	 <option value="Informacion">Informacion</option>  
	</select>
  </td>
  <td>
  <div id="valoresgeneral"></div>
  </td>
  <td width="32" align="center">
   <a href="javascript:document.modgeneral1.submit();">Nuevo</a>
  </td>
 </tr>
 </form>
 </table>
</body> 
</html> 
El problema está cuando envío las variables por post... que al enviarlas solo recibo la variable "nombre" y la variable "dato" no se recibe...

Ahora bien, hice una prueba:

Código HTML:
<html>
<head>
	<title>Demo</title>
</head>

<body>

<script language="JavaScript">
	var Informacion_GeneralArray;
	Informacion_GeneralArray=["General","Configuracion","Prueba1"];
	function ValoresGeneral(v) {
	// el tratamiento en sí...
	var NomArray = eval(v + "_GeneralArray");
	var str = '<SELECT name="dato" class="edit">'; 
	str += '<OPTION value="" SELECTED>[ Valores ]</OPTION>';
	for (x=0;x < NomArray.length;x++){
			str+='<OPTION value="'+NomArray[x]+'">'+NomArray[x]+'</OPTION>';
		}
	str += '</SELECT>';	
	document.getElementById("dato").outerHTML = str;
	
	}
</script>
<table width="400" align="center">
<form action="prueba.php" name="modgeneral1" method="post">
 <tr>
  <td>
   <select name="nombre" class="edit" onchange="ValoresGeneral(this.value);">
    <option value=""></option>
    <option value="Informacion">Informacion</option>
   </select>
  </td>
  <td>
   <select name="dato" id="dato">
    <option value="">[ Valores ]</option>
   </select>
  </td>
  <td width="32" align="center"><a href="javascript:document.modgeneral1.submit();">Nuevo</a></td>
 </tr>
</form>
</table>
</body>
</html> 
Esto no es lo mismo, ya que el dato siempre es un select por lo que no es lo que estoy buscando pero era para intentar resolver el porqué de que no me funciona el código anterior, en este caso si recibo la variable por post pero la parte visual solo me funciona en IE, que esto tampoco me interesa...

Bueno también he probado a usar el primer ejemplo con la función outerHTML en vez de innerHTML pero de esta manera solo me funciona en IE... estoy igual...

A ver si me podéis echar un cable, gracias.
__________________
www.pensandoenred.com

Última edición por MarioNunes; 28/03/2006 a las 02:33
  #2 (permalink)  
Antiguo 28/03/2006, 04:19
 
Fecha de Ingreso: enero-2005
Mensajes: 30
Antigüedad: 19 años, 2 meses
Puntos: 0
Wolas,
¿has visto esto?, igual te puede ser de alguna ayuda.

http://www.quirksmode.org/dom/domform.html

Un saludo.
__________________
Al Mutamid, El Rey Poeta
  #3 (permalink)  
Antiguo 28/03/2006, 04:27
Avatar de MarioNunes  
Fecha de Ingreso: agosto-2005
Mensajes: 280
Antigüedad: 18 años, 7 meses
Puntos: 1
Buenas AlMutamid,

Gracias por tu sugerencia, pero creo que no me vale... tengo ya mucho código hecho y necesito una solución a este problema ya que todo lo que he puesto aquí en HTML está generado dinámicamente con PHP... no puedo andar cambiando de funciones me duplicaría el trabajo...

Gracias.
__________________
www.pensandoenred.com
  #4 (permalink)  
Antiguo 30/03/2006, 00:34
Avatar de MarioNunes  
Fecha de Ingreso: agosto-2005
Mensajes: 280
Antigüedad: 18 años, 7 meses
Puntos: 1
Nadie sabria decirme porqué me ocurre esto?

Gracias y un saludo.
__________________
www.pensandoenred.com
  #5 (permalink)  
Antiguo 30/03/2006, 04:39
 
Fecha de Ingreso: enero-2005
Mensajes: 30
Antigüedad: 19 años, 2 meses
Puntos: 0
Wolas.
Pues, no estoy muy seguro, pero creo que esto es problema de como está implementado innerHTML (código propietario, no es un estandar) en firefox/mozilla. Es más, incluso si intentas acceder al elemento creado document.forms[0].dato, estará definido en IE, pero no en firefox/mozilla.

Siento no poder serte de más ayuda. Suerte, y si encuentras una solución, no dejes de postearla .

Un saludo.
__________________
Al Mutamid, El Rey Poeta
  #6 (permalink)  
Antiguo 04/04/2006, 07:11
Avatar de MarioNunes  
Fecha de Ingreso: agosto-2005
Mensajes: 280
Antigüedad: 18 años, 7 meses
Puntos: 1
Increible pero cierto, tan enorme chorrada me ha comido la cabeza durante un buen rato...

El codigo estaba bien, lo que he tenido que hacer es sacar la etiqueta form fuera de la etiqueta table.

<table>
<form>
.
.
.
</form>
</table>

Y el correcto:

<form>
<table>
.
.
.
</table>
</form>


La cuestion es que el codigo funciona sin problemas en IE pero en firefox y mozilla no y la solucion es lo que acabo de describir... cagon la leche xD si lo hubiera sabido antes...

Gracias por haberos molestado en leer este post.
__________________
www.pensandoenred.com
  #7 (permalink)  
Antiguo 07/09/2007, 06:49
Usuario no validado
 
Fecha de Ingreso: marzo-2004
Ubicación: barcelona
Mensajes: 28
Antigüedad: 20 años
Puntos: 0
Re: Formularios dinámicos???

ME CAGO EN LA OSTIA!!!!!!!!!!

Te juro que llevo dias jodido por este p*** problema.
Funcionaba bien en IE, funcionaba visualmente bien en FF pero en el momento de pasar los datos del form, aquellos creados por javascript en FF como si no existieran.

He hecho lo que has dicho y me ha funcionado. Aún así yo ya tenia el <form> antes del <table> así que por probar lo he puesto justo detrás del <body> y ya funciona!!!!!!!!!!!!!!!!!!!!!


No me lo puedo creer que por una estupidez así me alla tirado dias rompiéndome la cabeza y haciendo y rehaciendo el código!!!!!

Gracias!!!!!!!!!!!!!!!!
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 08:06.