Foros del Web » Programando para Internet » Javascript »

creacion de varios selects con nombres tipo array con javascript

Estas en el tema de creacion de varios selects con nombres tipo array con javascript en el foro de Javascript en Foros del Web. Hola espero tengan un buen dia mi problema es el siguiente: estoy creando un formulario dinamico con javscript, php y html. Cuando el usuario quiera ...
  #1 (permalink)  
Antiguo 24/01/2012, 14:40
 
Fecha de Ingreso: agosto-2009
Mensajes: 5
Antigüedad: 13 años, 5 meses
Puntos: 0
creacion de varios selects con nombres tipo array con javascript

Hola espero tengan un buen dia mi problema es el siguiente:
estoy creando un formulario dinamico con javscript, php y html. Cuando el usuario quiera ingresar una fila de datos mas debe presionar el boton crear, el cual insertara una linea con varios inputs y un select. hasta aqui todo bien.

El problema resulta al generar la consulta de la tabla en php dentro de la funcion javascript para llenar los option del select . aqui les dejo el codigo.

function crear(obj) {
num++;
fi = document.getElementById('fiel'); // 1
contenedor = document.createElement('div'); // 2
contenedor.id = 'div'+num; // 3
// fi.insertBefore(contenedor,obj); // 4
fi.appendChild(contenedor); // 4

var tabla = document.getElementById('miTabla');

tabla.tBodies[0].insertRow(2);
// Crear la columna de tipo <th> que hace de cabecera de fila
var cabecera = document.createElement("td");

var nomSel="sel["+num+"]";
cabecera.setAttribute('scope', 'row');

cabecera.innerHTML = '<input name="nombre'+num+'" type="text" />'
tabla.tBodies[0].rows[2].appendChild(cabecera);// Crear las dos columnas de datos y añadirlas a la nueva fila

tabla.tBodies[0].rows[2].insertCell(1);

tabla.tBodies[0].rows[2].cells[1].innerHTML = '<input name="parentesco'+[num]+'" type="text" />';

tabla.tBodies[0].rows[2].insertCell(2);
tabla.tBodies[0].rows[2].cells[2].innerHTML = '<select id="'+nomSel+'" name="'+nomSel+'" ></select>';

tabla.tBodies[0].rows[2].insertCell(3);

tabla.tBodies[0].rows[2].cells[3].innerHTML = '<input name="num_id'+[num]+'" type="text" />';

tabla.tBodies[0].rows[2].insertCell(4);

tabla.tBodies[0].rows[2].cells[4].innerHTML ='<input type="button" value="Crear" onclick="crear(this)" />'

<?php

$sql7 = "SELECT * FROM tbl_tipo_id";
$result7 = $db->sql_query($sql7);

while ($tbl_tipo_id = $db->sql_fetchrow($result7)) {

?>

o = document.createElement("OPTION");
o.value="<?php echo $tbl_tipo_id['ID']?>";
o.text= "<?php echo $tbl_tipo_id['NOM_TIPO_ID']?>";


document.forms.frmDatos.nomSel.options.add (o);

<?php
}
?>
}


Esta es la funcion javascript, inserte en una variable "nomSel" el nombre del select
pero no me inserta los datos de la consulta php.

<form name="frmDatos" action="<?php echo $action ;?>" method="post" onSubmit="return valida(this)">
<fieldset id="fiel">
<table class="lista" width="100%" id='miTabla'>
<tr>
<th width="20%">NOMBRE</th>
<th width="20%">PARENTESCO</th>
<th width="20%">TIPO DE ID</th>
<th width="20%">NUM ID</th>
<th width="20%">NUEVO REGISTRO</th>
</tr>
<tr>
<td><input name="nombre[0]" type="text" /></td>
<td><input name="parentesco[0]" type="text" /></td>
<td><select name="tipo_id[0]"><?php

$sql7 = "SELECT * FROM tbl_tipo_id";
$result7 = $db->sql_query($sql7);

while ($tbl_tipo_id = $db->sql_fetchrow($result7)) {

?><option value= "<?php echo $tbl_tipo_id['ID'] ?>" ><?php echo $tbl_tipo_id['NOM_TIPO_ID']?></option>
<?php } ?></select></td>
<td><input name="num_id[0]" type="text" /></td>
<td>
<input type="button" value="Crear" onclick="crear(this)" />
</td>
</tr>
<tr><th>&nbsp;</th><td><input name="validar" type="submit" /></td></tr>

</table>
</fieldset>

<br><a href="javascript:cerrar();"> presiona aquí para cerrar</a> </div>

</form>
y este es el codigo del formulario

espero que alguien me pueda ayudar llevo dos dias intentando que funcione
  #2 (permalink)  
Antiguo 24/01/2012, 14:53
 
Fecha de Ingreso: agosto-2009
Mensajes: 5
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: creacion de varios selects con nombres tipo array con javascript

Lo resolví sola, jaja
cambie la linea:

document.forms.frmDatos.nomSel.options.add (o);

por:

document.forms.frmDatos.elements['sel['+num+']'].options.add (o);

de esta forma me permite ver los option del select

Etiquetas: formulario, funcion, html, input, nombres, php, selects, tipo, botones
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 00:57.