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>
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>
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.