Ver Mensaje Individual
  #1 (permalink)  
Antiguo 28/03/2006, 02:27
Avatar de MarioNunes
MarioNunes
 
Fecha de Ingreso: agosto-2005
Mensajes: 280
Antigüedad: 18 años, 8 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