Se me presenta la siguiente situación:
Tengo un código javaScript que me crea una serie de elementos (input's) dinámicamente
Código PHP:
function creaFila(i,cod,desc) {
divp = document.getElementById("result");
tabla = document.getElementById("tblvinc");
tr = document.createElement("tr");
td = document.createElement("td");
input = document.createElement("input");
input.setAttribute("type","text");
id = "vinc"+i;
input.setAttribute("id",id);
input.setAttribute("name",id);
if (cod.length > 0)
input.setAttribute("class","noed");
else
input.setAttribute("class","editar");
input.setAttribute("style","width:70px;");
input.setAttribute("onClick","modificaDato(this);this.select();");
input.setAttribute("onBlur","cambiaClase(this,id);");
input.setAttribute("onChange","consultaDato(id);");
input.setAttribute("onKeyPress","return handleEnter(this, event);");
input.setAttribute("value",cod);
td.appendChild(input);
tr.appendChild(td);
td = document.createElement("td");
input = document.createElement("input");
input.setAttribute("type","text");
id = "desc"+i;
input.setAttribute("id",id);
input.setAttribute("name",id);
if (desc.length > 0)
input.setAttribute("class","noed");
else
input.setAttribute("class","editar");
input.setAttribute("onClick","modificaDato(this);this.select();");
input.setAttribute("onBlur","cambiaClase(this,id);");
input.setAttribute("onChange","consultaDato(id);");
input.setAttribute("onKeyPress","return handleEnter(this, event);");
input.setAttribute("value",desc);
input.setAttribute("style","width: 260px");
td.appendChild(input);
tr.appendChild(td);
tabla.appendChild(tr);
divp.appendChild(tabla);
}
Como se puede ver se trata de crear dos input text en los que entre otros se registra un evento onChange cuya función es abrir una ventana emergente en la que se ejecuta un código php haciendo una consulta a la base de datos mostrando el resultado en una tabla seleccionable
El llamado para abrir la ventana emergente es:
Código PHP:
function consultaDato(id) {
valor = document.getElementById(id).value;
col = id.substring(0,4);
posi = id.substring(4,id.length);
if (col == "desc")
llega='buscar/bvincula.php?&nom='+valor+'&lin='+posi+"&prog=x";
else
llega='buscar/bvincula.php?&soli='+valor+'&lin='+posi+"&prog=x";
window.open(llega,"BUSCAR","fullscreen=no,status=no,dependent=yes, width=350, height=400,resizable=0,top=220,left=600");
}
Cuando se elige una fila en la ventana hija debe pasar esos valores a la ventana padre en la columna correspondiente, es decir, en la columna desde la que se hizo el llamado
El código de la ventana emergente:
Código PHP:
function ciudad(c,d)
alert(opener.document.depe.vinc<?= $lin; ?>.value); // $lin es la linea en el papá donde debe colocar lo seleccionado
opener.document.depe.vinc<?= $lin; ?>.value = c.value;
opener.document.depe.desc<?= $lin; ?>.value = d.value;
window.close();
}
Una de las cosas que he pensado sobre el por qué no lo encuentra es por el hecho de que son datos creados dinámicamente y el DOM no los detecta (será que si?)
De ser así, como lograré que me cancione bien la vaina?
Mil gracias de antemano por su ayuda
Un Cordial Saludo