Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Problemas con opener.document ayuda porfavor.

Estas en el tema de Problemas con opener.document ayuda porfavor. en el foro de Frameworks JS en Foros del Web. hola a todos bueno priemro explico mi porblema. Sucede que estoyt creando un formulario de modificacion de cliente la cual muestra los datos del cliente ...
  #1 (permalink)  
Antiguo 28/01/2008, 14:28
 
Fecha de Ingreso: abril-2003
Ubicación: Santiago
Mensajes: 212
Antigüedad: 21 años
Puntos: 0
Problemas con opener.document ayuda porfavor.

hola a todos bueno priemro explico mi porblema.
Sucede que estoyt creando un formulario de modificacion de cliente la cual muestra los datos del cliente mas los calefactores asociados a tal.

la carga de datos se hace mediante ajax y DOM.
el esquema del formulario es el siguiente una primera seccion donde se muestra el formulario con los datos cargados debajo de eso se genera una tabla con los calefactores que dicho cliente posee y debajo de la tabla un boton eliminar.

para cargar los datos del cliente se abre una ventana popup en la cual genero la busqueda y retorno los datos. nmi problema esta en el boton eliminar.
Código:
var botoneliminar=createInput('input','eliminar', opener.document);
botoneliminar.setAttribute('type','button');
botoneliminar.setAttribute('value','Eliminar Calefactor');
botoneliminar.onclick=function() {
   alert(opener.document.getElementById('rut').value);
}
divCalefactor.appendChild(botoneliminar);
mi porblema esta aca el alerto solo lo hace mientras la ventana popup de busqueda se encuentra abierta pero si la cierro el codigo deja de funcionar
si pongo
alert(document.getElementById('rut').value);

no funciona de ninguna forma como puedo hacer esto
pa que funcione acontinuacion pongfo el codigo.

Código:
function cargarCalefactorCliente(rut, objeto) {
	var divCalefactor = objeto.getElementById('calefactores');
	divCalefactor.innerHTML="";
	var calefactorClienteAjax=nuevoAjax();
	calefactorClienteAjax.open("POST", "../../ajax/calefactor/buscarCalefactor.php",true);	
	calefactorClienteAjax.onreadystatechange=function() {	
		if (calefactorClienteAjax.readyState==4) {
			var xml = calefactorClienteAjax.responseXML;
			var tam= xml.getElementsByTagName('idCalefactor').length;
			var tabla=objeto.createElement('table');
			tabla.setAttribute("border","1");
			var cuerpoTabla=objeto.createElement('tbody');
			var fila=objeto.createElement('tr');
			//columna 1
			var columna=objeto.createElement('td');
			columna.setAttribute("width","10%");
			columna.appendChild(objeto.createTextNode(' '));
			fila.appendChild(columna);
			//columna 2
			var columna=objeto.createElement('td');
			columna.setAttribute("width","48%");
			columna.appendChild(objeto.createTextNode('Modelo'));
			fila.appendChild(columna);
			//columna 3
			var columna=objeto.createElement('td');
			columna.setAttribute("width","40%");
			columna.appendChild(objeto.createTextNode('Linea'));
			fila.appendChild(columna);
			cuerpoTabla.appendChild(fila);
			for(i=0; i< tam;i++) {
				var idCalefactor =xml.getElementsByTagName('idCalefactor').item(i).firstChild.data;
				var modelo =xml.getElementsByTagName('nombreModelo').item(i).firstChild.data;
				var linea =xml.getElementsByTagName('lineaModelo').item(i).firstChild.data;
				var fila=objeto.createElement('tr');
				//columna 1
				var columna=objeto.createElement('td');
				var rutCheck=createInput('input', 'calefactor[]', objeto);
				rutCheck.setAttribute('type','radio');
				rutCheck.setAttribute('value',idCalefactor);
				/*rutCheck.onclick=function() {
					alert("hola");
				}*/
				columna.appendChild(rutCheck);
				fila.appendChild(columna);
				//columna 2
				var columna=objeto.createElement('td');
				columna.appendChild(objeto.createTextNode(modelo));
				fila.appendChild(columna);
				//columna 3
				var columna=objeto.createElement('td');
				columna.appendChild(objeto.createTextNode(linea));
				fila.appendChild(columna);
				cuerpoTabla.appendChild(fila);
			}
			tabla.appendChild(cuerpoTabla);
			divCalefactor.appendChild(tabla);
			//if(objeto=opener.document){
				var botoneliminar=createInput('input','eliminar', opener.document);
				botoneliminar.setAttribute('type','button');
				botoneliminar.setAttribute('value','Eliminar Calefactor');
				botoneliminar.onclick=function() {
					//if(noChecked(opener.document.getElementById('modcliente'),'calefactor[]', 'calefactor')) {
						alert(opener.document.getElementById('rut').value);
						//alert(getValueChecked(document.getElementById('modcliente'), 'calefactor[]'));
					//}
				}
				divCalefactor.appendChild(botoneliminar);
			//}
		
		}
	}
	calefactorClienteAjax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	calefactorClienteAjax.send("rut="+rut);
}
  #2 (permalink)  
Antiguo 29/01/2008, 01:43
Avatar de ZiTAL  
Fecha de Ingreso: marzo-2004
Ubicación: Bermio (Bizkaia)
Mensajes: 1.545
Antigüedad: 20 años, 1 mes
Puntos: 62
Re: Problemas con opener.document ayuda porfavor.

si he entendido bien, si añades el opener en la funcion de un boton de la ventana padre, el boton que esta en la ventana padre en el onclik mirara a su vez su ventana padre, el cual no tiene ahi esta el error.

deberas de quitar el opener en el alert.
__________________
http://zital.no-ip.org
____________________

Euskerie ahuen eta bijotzan
  #3 (permalink)  
Antiguo 29/01/2008, 11:33
 
Fecha de Ingreso: abril-2003
Ubicación: Santiago
Mensajes: 212
Antigüedad: 21 años
Puntos: 0
Re: Problemas con opener.document ayuda porfavor.

mmmm ya lo hice pero el codigo no pesca ahy
bueno al final solucuioine el porblema creandpo el boton de forma estatica desbilitandolo y habilitandolo una ves que cargan los datos.
Agradesco la ayuda de todas formas.
  #4 (permalink)  
Antiguo 27/09/2008, 09:01
 
Fecha de Ingreso: septiembre-2008
Ubicación: Cuernavaca, Morelos
Mensajes: 40
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Problemas con opener.document ayuda porfavor.

Antes que nada hola, espero aun te sirva goomba, aunque lo dudo mucho, pero la info aqui la dejo de igual manera; a mi me ocurrio algo parecido y lo solucione de la siguiente manera :
Código:
obj = opener.document.createElement('input');
obj.type='button';
obj.value='Eliminar';
obj.setAttribute('onclick','elimina()');

function elimina(){
   alert("si jalo");
}
con este codigo aun cuando cierres la ventana secundaria, el onclick se ejecuta sin problemas.
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 01:41.