Foros del Web » Programando para Internet » Javascript »

Abrir pop-up, guardar datos sin cerrar

Estas en el tema de Abrir pop-up, guardar datos sin cerrar en el foro de Javascript en Foros del Web. Hola, tengo una ventana con un listado de registros, y con un icono de detalle para cada registro. Pinchando en ese icono de detalle, se ...
  #1 (permalink)  
Antiguo 12/11/2009, 10:30
 
Fecha de Ingreso: diciembre-2008
Mensajes: 233
Antigüedad: 15 años, 4 meses
Puntos: 1
Abrir pop-up, guardar datos sin cerrar

Hola, tengo una ventana con un listado de registros, y con un icono de detalle para cada registro. Pinchando en ese icono de detalle, se me abre una ventana pop-up en la que puedo modificar los datos. Lo que quiero es, en esa ventana de pop-up de detalle, guardar los datos que escriba dandole a un botón y que se refresquen en la pantalla padre con el listado, pero sin que se cierre la ventana pop-up, para poder seguir modificando si se quiere. Puedo guardar los datos, pero se me cierra la pantalla pop-up. ¿Cómo podría hacer para que permaneciera abierta, sin cerrar, después de guardar los datos y refrescar la pantalla principal? ¿Puede alguien ayudarme?
Lo he intentado poniendo una variable que se rellena si le doy a ese botón, pasando ese valor al action, y del action a la jsp siguiente:

<html>
<%@ taglib uri="/struts-tags" prefix="s" %>
<head>
</head>
<body onload="refrescarPaginas()">
<s:form>
<s:hidden id="guardarSinCerrar" name="guardarYNoCerrar" value="%{guardarYNoCerrar}"/>
</s:form>
<script type="text/javascript">

function refrescarPaginas()
{
window.close();
window.parent.opener.location.reload();
if (document.getElementById('guardarSinCerrar')== sologuardar)
{
window.open("/jsp/adminusuarios/gestionUsuarios.jsp");
}
}

</script>
</body>
</html>

de manera que si pincho cualquier otro botón, la variable guardarYNoCerrar = null y solo hace

window.close();
window.parent.opener.location.reload();

guardándose los datos y refrescándose la pantalla con el listado, y si se pincha el botón adecuado coge el valor sologuardar y debería guardar datos y refrescar de todos modos el listado, y al mismo tiempo abrir la ventana y dejarla abierta, pero no consigo que se queda abierta.
¿Alguien sabe como conseguir que se quede abierta, o abrirla de nuevo conservando los datos que se habían introducido?

Muchas gracias, un saludo
  #2 (permalink)  
Antiguo 12/11/2009, 11:16
Avatar de ceSharp  
Fecha de Ingreso: octubre-2008
Ubicación: Madrid
Mensajes: 495
Antigüedad: 15 años, 6 meses
Puntos: 66
Respuesta: Abrir pop-up, guardar datos sin cerrar

hola Pelirr,
Mira, te paso un ejemplo para que veas más o menos cómo lo puedes hacer:
-----------------------------------------
//codigo javascript pagina padre
var num = 0;
setInterval(comprobar,1000);
function comprobar()
{
document.getElementById('numero').innerHTML = num;
}
------------------------
<!--html de la página padre-->
<body>
<div id="numero"></div>
<div onclick="javascript:window.open('HTMLPageHija.htm' ,'popup','width=500,height=500')">da</div>
</body>
-------------------------------
<!--html página hija-->
<body>
<input type="button" onclick="top.opener.num +=1;" />
</body>
------------------------------
como verás, desde la página hija (HTMLPageHija.htm) incremento la variable global num de la página padre. En la página padre he puesto un setInterval que cada segundo comprueba y actualiza el div id="numero".
con esto conseguimos que, sin cerrar el popup, la variable num se pueda actualizar.
prueba y si con esto eres capaz de implementarlo en tu web pues guay, no? jejejejeje

salu2
  #3 (permalink)  
Antiguo 13/11/2009, 01:49
 
Fecha de Ingreso: diciembre-2008
Mensajes: 233
Antigüedad: 15 años, 4 meses
Puntos: 1
Respuesta: Abrir pop-up, guardar datos sin cerrar

Hola ceSharp, he seguido tu consejo pero la página hija no se queda abierta. Voy a seguir intentándolo, pero si se te ocurre algo te lo agradecería.

Un saludo
  #4 (permalink)  
Antiguo 13/11/2009, 05:52
 
Fecha de Ingreso: diciembre-2008
Mensajes: 233
Antigüedad: 15 años, 4 meses
Puntos: 1
Respuesta: Abrir pop-up, guardar datos sin cerrar

Creo que he encontrado el camino, pero necesito ayuda. Estoy probando a, dependiendo del botón que se pulse, se guarde o no una variable en el action, y según su valor, luego abrir o no la ventana pop-up, pero necesito saber como hacer una cosa:

Yo tengo una jsp, con un form, en el cual le paso varias variables a un action. En una función de javascript de esa jsp, me creo una variable, de manera que si se pulsa el botón que yo quiero, se llame a esa función. Lo que quiero es, que al pulsar el botón y llamar así la función, se guarde en un campo del formulario el valor de mi variable. La función es:

var valorguardado = null;
function guardarValor()
{
valorguardado = "guardarSinCerrar";
document.getElementById('valorGuardado').innerHTML = valorguardado;
}

y en la página, en el botón, pongo:

<s:a href='#' onClick="guardarValor();selectAllOptions(document. getElementById('ElemSelected'));document.myForm.su bmit();"><img src="<s:url value="/images/accept.png"/>" border="0"/></s:a>
<s:hidden id="valorGuardado" name="valorGuardado">

de manera que lo que quiero es pasar al <s:hidden id="valorGuardado"... el valor "guardarSinCerrar", y al mandar el formulario al action, me recoja ese valor en una variable que ya tengo creada.
Pero en la práctica el action no me recoge ningún valor para valorGuardado, ¿Puede alguien decirme qué hago mal? Creo que si pudiera hacerlo, lo demás iría rodado

Un saludo
  #5 (permalink)  
Antiguo 18/11/2009, 03:47
 
Fecha de Ingreso: diciembre-2008
Mensajes: 233
Antigüedad: 15 años, 4 meses
Puntos: 1
Respuesta: Abrir pop-up, guardar datos sin cerrar

Hola, me respondo a mí misma por si puede ayudar a alguien, lo he conseguido de la siguiente manera:

En la página hija:

var valorguardado = null;
function guardarValor()
{
valorguardado = "guardarSinCerrar";
document.getElementById('valorGuardado').value = valorguardado;
}
(veréis que es .value, no .innerHTML)

y en el botón:

<s:a href='#' onClick="guardarValor(),selectAllOptions(document. getElementById('ElemSelected'));document.myForm.su bmit();"><img src="<s:url value="/images/accept.png"/>" border="0"/></s:a>
<s:hidden id="valorGuardado" name="valorGuardado">
(veréis que es guardarValor(), no guardarValor();)

de ésta manera consigo pasar "valorguardado" al action, y allí según sea nulo o tenga otro valor hará una cosa u otra. Y después, para refrescar los valores en la página padre, en la página hija en body onload pongo
window.parent.opener.reload();

Un saludo
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 13:00.