Foros del Web » Programando para Internet » Javascript »

El DOM y Ventanas secundarias

Estas en el tema de El DOM y Ventanas secundarias en el foro de Javascript en Foros del Web. Saludos Moderadores y Usuarios de forosdelweb.. Este es mi primera publicación.. Tengo un problema hace unas semanas que me ha atrasado un poco en mi ...
  #1 (permalink)  
Antiguo 02/05/2012, 09:34
Avatar de nestorjescala  
Fecha de Ingreso: mayo-2012
Ubicación: Edo Guarico
Mensajes: 19
Antigüedad: 11 años, 11 meses
Puntos: 1
Exclamación El DOM y Ventanas secundarias

Saludos Moderadores y Usuarios de forosdelweb.. Este es mi primera publicación.. Tengo un problema hace unas semanas que me ha atrasado un poco en mi proyecto de tesis..

Quisiera saber si tienen alguna idea de como crear una tabla desde una Ventana Emergente a una Ventana Principal utilizando createelement y appendchild??

En la Ventana Emergente tengo un listado de opciones leidas desde una base de datos en Postgres y quiero que en la Ventana Principal se me dibuje la misma tabla con los mismos datos al seleccionar cada opcion del listado..

Espero que puedan ayudarme.. Se los agradeceria mucho! Saludos desde Venezuela..
  #2 (permalink)  
Antiguo 02/05/2012, 10:03
 
Fecha de Ingreso: marzo-2007
Mensajes: 82
Antigüedad: 17 años, 1 mes
Puntos: 21
Respuesta: El DOM y Ventanas secundarias

Te sirve algo asi ?
Estoy suponiendo que la vetana secundaria la abres con window.open

En la ventana principal
Código Javascript:
Ver original
  1. function dibujaTabla(datos) {
  2.     // manipulacion de los datos
  3.     // los createElement y los appendChild
  4. }

Y en el popup
Código Javascript:
Ver original
  1. var datos = {"los" : "datos que sean"};
  2. window.opener.dibujaTabla(datos);
__________________
Hazle un favor a tu cerebro y juega Ajedrez online
Chess online
  #3 (permalink)  
Antiguo 02/05/2012, 10:27
Avatar de nestorjescala  
Fecha de Ingreso: mayo-2012
Ubicación: Edo Guarico
Mensajes: 19
Antigüedad: 11 años, 11 meses
Puntos: 1
Respuesta: El DOM y Ventanas secundarias

Gracias por responder chinanzio.. Yo el Popup lo llamo de esta forma:

Código Javascript:
Ver original
  1. function nueva_ventana(url, ancho, alto, barra)
  2. {  
  3.     day = new Date();
  4.     id = day.getTime();
  5.     URL='usuarios_listado.php?cedula=' + document.frmasignar.o_cedula.value;
  6.    eval("page" + id + " = window.open(URL, '" + id + "', 'toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=0,width=600,height=400');");
  7.  
  8. }

Y los valores se los envio a la ventana principal usando esta funcion:

Código Javascript:
Ver original
  1. function AgregarFila(obj){
  2.         obj.value = parseInt(obj.value) + 1;
  3.         var oId = obj.value;
  4.         var cedula = document.getElementById("ced");
  5.         var nombres = document.getElementById("nomb");
  6.         var indicador = document.getElementById("ind");
  7.         var extension = document.getElementById("ext");
  8.        
  9.         var strHtml1 = cedula.value + '<input type="hidden" id="hdnCedula_' + oId + '" name="hdnCedula_' + oId + '" value="' + cedula.value + '"/>' ;
  10.         var strHtml2 = nombres.value + '<input type="hidden" id="hdnNombres_' + oId + '" name="hdnNombres_' + oId + '" value="' + nombres.value + '"/>' ;
  11.         var strHtml3 = indicador.value + '<input type="hidden" id="hdnIndicador_' + oId + '" name="hdnIndicador_' + oId + '" value="' + indicador.value + '"/>' ;
  12.         var strHtml4 = extension.value + '<input type="hidden" id="hdnExtension_' + oId + '" name="hdnExtension_' + oId + '" value="' + extension.value + '"/>' ;
  13.  
  14.         var objTr = document.createElement("tr");
  15.         objTr.id = "rowDetalle_" + oId;
  16.         var objTd1 = document.createElement("td");
  17.         objTd1.id = "tdDetalle_1_" + oId;
  18.         objTd1.innerHTML = strHtml1;
  19.         var objTd2 = document.createElement("td");
  20.         objTd2.id = "tdDetalle_2_" + oId;  
  21.         objTd2.innerHTML = strHtml2;
  22.         var objTd3 = document.createElement("td");
  23.         objTd3.id = "tdDetall_3_" + oId;   
  24.         objTd3.innerHTML = strHtml3;
  25.         var objTd4 = document.createElement("td");
  26.         objTd4.id = "tdDetalle_4_" + oId;  
  27.         objTd4.innerHTML = strHtml4;
  28.  
  29.         objTr.appendChild(objTd1);
  30.         objTr.appendChild(objTd2);
  31.         objTr.appendChild(objTd3);
  32.         objTr.appendChild(objTd4);
  33.  
  34.         var objTbody = document.getElementById("tbDetalle");
  35.         objTbody.appendChild(objTr);
  36.         return false;
  37.     }

Espero puedas entender el codigo y lo que intento lograr..
  #4 (permalink)  
Antiguo 02/05/2012, 10:38
 
Fecha de Ingreso: marzo-2007
Mensajes: 82
Antigüedad: 17 años, 1 mes
Puntos: 21
Respuesta: El DOM y Ventanas secundarias

entiendo que nueva_ventana está en la ventana principal
AgregarFila tambien ?
Si es asi, a simple vista pareciera que llamando a AgregarFila desde la pagina del popup funcionaría
Tenes algún problema en particular ?
__________________
Hazle un favor a tu cerebro y juega Ajedrez online
Chess online
  #5 (permalink)  
Antiguo 02/05/2012, 10:45
Avatar de nestorjescala  
Fecha de Ingreso: mayo-2012
Ubicación: Edo Guarico
Mensajes: 19
Antigüedad: 11 años, 11 meses
Puntos: 1
Respuesta: El DOM y Ventanas secundarias

La verdad es que AgregarFila() se encuentra en el Popup.. En el cual cada elemento del listado que se muestra tiene un icono con el onClick=AgregarFila()..

Tu crees que colocando esa funcion en la Ventana Principal funcione correctamente?? y disculpa mi ignorancia respecto al tema..
  #6 (permalink)  
Antiguo 02/05/2012, 11:12
 
Fecha de Ingreso: marzo-2007
Mensajes: 82
Antigüedad: 17 años, 1 mes
Puntos: 21
Respuesta: El DOM y Ventanas secundarias

OK, entonces no creo que funcione asi directamente
Haz lo siguiente, recoge los datos que necesitas en una funcion en el popup, y una vez los tengas, llama a la función de la página principal que crea la tabla.
Mas o menos como puse en la primera respuesta
__________________
Hazle un favor a tu cerebro y juega Ajedrez online
Chess online
  #7 (permalink)  
Antiguo 02/05/2012, 11:17
 
Fecha de Ingreso: marzo-2007
Mensajes: 82
Antigüedad: 17 años, 1 mes
Puntos: 21
Respuesta: El DOM y Ventanas secundarias

Mas o menos una cosa asi:

En el popup:
Código Javascript:
Ver original
  1. function AgregarFila(obj) {
  2.     obj.value = parseInt(obj.value) + 1;
  3.     var oId = obj.value;
  4.     // ESTOY SUPONIENDO QUE LOS SIGUIENTES ELEMENTOS ESTAN EN EL POPUP
  5.     var cedula = document.getElementById("ced");
  6.     var nombres = document.getElementById("nomb");
  7.     var indicador = document.getElementById("ind");
  8.     var extension = document.getElementById("ext");
  9.  
  10.     var strHtml1 = cedula.value + '<input type="hidden" id="hdnCedula_' + oId + '" name="hdnCedula_' + oId + '" value="' + cedula.value + '"/>';
  11.     var strHtml2 = nombres.value + '<input type="hidden" id="hdnNombres_' + oId + '" name="hdnNombres_' + oId + '" value="' + nombres.value + '"/>';
  12.     var strHtml3 = indicador.value + '<input type="hidden" id="hdnIndicador_' + oId + '" name="hdnIndicador_' + oId + '" value="' + indicador.value + '"/>';
  13.     var strHtml4 = extension.value + '<input type="hidden" id="hdnExtension_' + oId + '" name="hdnExtension_' + oId + '" value="' + extension.value + '"/>';
  14.  
  15.     var params = {};
  16.     params.oId = oId;
  17.     params.strHtml1 = strHtml1;
  18.     params.strHtml2 = strHtml2;
  19.     params.strHtml3 = strHtml3;
  20.     params.strHtml4 = strHtml4;
  21.  
  22.     window.opener.appendTr(params);
  23.     return false;
  24. }

y en la principal:
Código Javascript:
Ver original
  1. function appendTr(params) {
  2.     var objTr = document.createElement("tr");
  3.     objTr.id = "rowDetalle_" + params.oId;
  4.     var objTd1 = document.createElement("td");
  5.     objTd1.id = "tdDetalle_1_" + params.oId;
  6.     objTd1.innerHTML = params.strHtml1;
  7.     var objTd2 = document.createElement("td");
  8.     objTd2.id = "tdDetalle_2_" + params.oId;
  9.     objTd2.innerHTML = params.strHtml2;
  10.     var objTd3 = document.createElement("td");
  11.     objTd3.id = "tdDetall_3_" + params.oId;
  12.     objTd3.innerHTML = params.strHtml3;
  13.     var objTd4 = document.createElement("td");
  14.     objTd4.id = "tdDetalle_4_" + params.oId;
  15.     objTd4.innerHTML = params.strHtml4;
  16.  
  17.     objTr.appendChild(objTd1);
  18.     objTr.appendChild(objTd2);
  19.     objTr.appendChild(objTd3);
  20.     objTr.appendChild(objTd4);
  21.  
  22.     // Y ACA ESTOY SUPONE¡IENDO QUE EL TBODY ESTA EN LA PAGINA PRINCIPAL
  23.     var objTbody = document.getElementById("tbDetalle");
  24.     objTbody.appendChild(objTr);
  25. }
__________________
Hazle un favor a tu cerebro y juega Ajedrez online
Chess online
  #8 (permalink)  
Antiguo 02/05/2012, 11:40
Avatar de nestorjescala  
Fecha de Ingreso: mayo-2012
Ubicación: Edo Guarico
Mensajes: 19
Antigüedad: 11 años, 11 meses
Puntos: 1
Respuesta: El DOM y Ventanas secundarias

Interesante sugerencia! Voy a probar tu codigo y te aviso como me va!

De verdad muchas gracias por las respuestas Chinanzio..
  #9 (permalink)  
Antiguo 02/05/2012, 13:26
Avatar de nestorjescala  
Fecha de Ingreso: mayo-2012
Ubicación: Edo Guarico
Mensajes: 19
Antigüedad: 11 años, 11 meses
Puntos: 1
Respuesta: El DOM y Ventanas secundarias

Sigo sin poder solucionar mi problema, pero creo que ya estoy cerca de hacerlo!

Ahora me muestra el siguiente error: objTbody is null en este fragmento de codigo:
Código Javascript:
Ver original
  1. var objTbody = document.getElementById("tbDetalle");
  2. objTbody.appendChild(objTr);

Saludos!
  #10 (permalink)  
Antiguo 02/05/2012, 13:36
 
Fecha de Ingreso: marzo-2007
Mensajes: 82
Antigüedad: 17 años, 1 mes
Puntos: 21
Respuesta: El DOM y Ventanas secundarias

Hola , yo estoy suponiendo que en la pagina principal existe un tbody con el id tbDetalle, y que la función appendTr también está en la página principal.
lo tenes asi ?
__________________
Hazle un favor a tu cerebro y juega Ajedrez online
Chess online
  #11 (permalink)  
Antiguo 02/05/2012, 13:37
Avatar de nestorjescala  
Fecha de Ingreso: mayo-2012
Ubicación: Edo Guarico
Mensajes: 19
Antigüedad: 11 años, 11 meses
Puntos: 1
Respuesta: El DOM y Ventanas secundarias

Cita:
Iniciado por nestorjescala Ver Mensaje
Sigo sin poder solucionar mi problema, pero creo que ya estoy cerca de hacerlo!

Ahora me muestra el siguiente error: objTbody is null en este fragmento de codigo:
Código Javascript:
Ver original
  1. var objTbody = document.getElementById("tbDetalle");
  2. objTbody.appendChild(objTr);

Saludos!
P.D: El Error lo muestra en el Popup cuando selecciono el valor de la lista pero hace referencia a la Ventana Principal..
  #12 (permalink)  
Antiguo 02/05/2012, 13:43
Avatar de nestorjescala  
Fecha de Ingreso: mayo-2012
Ubicación: Edo Guarico
Mensajes: 19
Antigüedad: 11 años, 11 meses
Puntos: 1
Respuesta: El DOM y Ventanas secundarias

Exacto! Esta en la Ventana Principal el codigo es este:
Código HTML:
Ver original
  1. <div class="clear"></div>
  2. <div id="formasignar">
  3. <table width="100%" id="tblDetalle">
  4.   <tr>
  5.     <td align="center" bgcolor="#EBEBEB" class="Tabla_encabezado_stm">Cedula</td>
  6.     <td align="center" bgcolor="#EBEBEB" class="Tabla_encabezado_stm">Nombre Y Apellido</td>
  7.     <td align="center" bgcolor="#EBEBEB" class="Tabla_encabezado_stm">Indicador</td>
  8.     <td align="center" bgcolor="#EBEBEB" class="Tabla_encabezado_stm">Extension</td>
  9.     <td align="center" bgcolor="#EBEBEB" class="Tabla_encabezado_stm">Quitar</td>
  10.   </tr>
  11. <tbody id="tbDetalle">
  12. </div>

Hice una prueba colocandolo en el Popup pero igual sigue marcando el mismo error..
  #13 (permalink)  
Antiguo 02/05/2012, 13:51
 
Fecha de Ingreso: marzo-2007
Mensajes: 82
Antigüedad: 17 años, 1 mes
Puntos: 21
Respuesta: El DOM y Ventanas secundarias

A lo mejor el siguiente ejemplo te sirve

PAGINA PRINCIPAL
Código HTML:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  4. <title>Insert title here</title>
  5. </head>
  6.     <table>
  7.         <tbody id="tbDetalle">
  8.         <tr>
  9.             <td>uno</td>
  10.         </tr>
  11.         <tr>
  12.             <td>dos</td>
  13.         </tr>
  14.         </tbody>
  15.     </table>
  16.     <script>
  17.     function appendTr(datos) {
  18.         var tbody = document.getElementById("tbDetalle");
  19.  
  20.         var tr = document.createElement("tr");
  21.         var td = document.createElement("td");
  22.         td.innerHTML = datos.los;
  23.         tr.appendChild(td);
  24.  
  25.         tbody.appendChild(tr);
  26.     }
  27.  
  28.     var day = new Date();
  29.     var id = day.getTime();
  30.     var URL = 'popup.html';
  31.     eval("page" + id + " = window.open(URL, '" + id + "', 'toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=0,width=600,height=400');");
  32.        
  33.     </script>
  34. </body>
  35. </html>

Y ESTO EN popup.html
Código HTML:
Ver original
  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  5. <title>Insert title here</title>
  6. </head>
  7. function appendToPrincipal() {
  8.     var datos = {"los" : "los datos que sean"};
  9.     window.opener.appendTr(datos); 
  10. }
  11. <input type="button" value="añadir en la principal" onclick="appendToPrincipal();" />
  12. </body>
  13. </html>
__________________
Hazle un favor a tu cerebro y juega Ajedrez online
Chess online
  #14 (permalink)  
Antiguo 02/05/2012, 14:18
Avatar de nestorjescala  
Fecha de Ingreso: mayo-2012
Ubicación: Edo Guarico
Mensajes: 19
Antigüedad: 11 años, 11 meses
Puntos: 1
Respuesta: El DOM y Ventanas secundarias

Por lo visto este era el codigo que andaba buscando! Jeje sino me funciona cambio de carrera!

Muchas gracias Chinanzio.. Muy agradecido! +10
Jajaja

Etiquetas: dom, html, php
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 16:06.