elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web (Moderador: #!drvy)
| | |-+  Existe forma de reemplazar el showModalDialog() por window.open()
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Existe forma de reemplazar el showModalDialog() por window.open()  (Leído 3,679 veces)
:ohk<any>


Desconectado Desconectado

Mensajes: 1.744


Yo lo que quiero que me salga bien es la vida.


Ver Perfil WWW
Existe forma de reemplazar el showModalDialog() por window.open()
« en: 20 Agosto 2012, 21:50 pm »

Eso, quiero saber si existe forma de reemplazar el showModalDialog() por window.open().

Lo que pasa es que estoy haciendo un evento que cuanto se haga doble click en un textfield se abra una ventana donde se envien ciertos parámetros y en dicha ventana se realice alguna tarea adicional quizas una inserción a la base de datos y al finalizar se cierre y devuelva un valor al textfield que fue responsable de abrir esa ventana.

Ahora bien, con el showModalDiaglog() ya lo conseguí, pero en un archivo php limpio, cuando quiero integrarlo a mi modulo el showModalDiaglog() no me esta funcionando para nada y no entiendo porque, quizas porque estoy usando varios .js incluidos, desconozco la relación de conflicto que puedan tener, ademas estoy usando un contador en php para enumerar cada textfield porque seran como 15 que deben tener la misma característica algo asi como
Código
  1. id="nombre[<?php echo $contador; ?>]"
entonces se dificulta mucho en el momento de envio de parámetros.

Entonces probe lo mismo con window.open y me funciona tranquilamente, puedo enviar un parámetro por GET (url) a la ventana nueva, pero no se como hacer para al finalizar una accion en dicha ventana, esta se cierre y me devuelva otro valor al textfield que la invocó, nose si me explico.

Espero me puedan ayudar.

Un saludo


En línea

Y es que a veces pienso que si no estuviera loco no podría salir adelante.
Lo que no se es capaz de dar, en realidad no se posee, uno es poseído por ello.
:ohk<any>


Desconectado Desconectado

Mensajes: 1.744


Yo lo que quiero que me salga bien es la vida.


Ver Perfil WWW
Re: Existe forma de reemplazar el showModalDialog() por window.open()
« Respuesta #1 en: 22 Agosto 2012, 01:00 am »

Lo solucione de la siguiente manera y sin utilizar showModalDialog().

Vamos a interpretar el uso de dos archivos.

El Inicial y el Invocado.

En el Inicial tengo algo un tanto complejo en el codigo donde utilizo un contador para repetir un <select> porque requiero varios del mismo.

Aca un ejemplo visual:


Como señala en la imagen, primero se debe seleccionar una cuenta y luego hacer doble clic en el textfield de Auxiliar. Con el codigo javascript envio los valores de la cuenta y tengo una ventana como esta:


Como señala en la imagen, se selecciona y se acepta.
Y se obtiene algo como esto:


Y lo que buscaba lo conseguí.

Codigo ventana Inicial:

Tenemos el textfield donde se hace doble clic, este recupera el valor del id del <select> y ejecuta una funcion.

Código
  1. <input type="text" name="id_contable_auxiliar[<?php echo $contador; ?>]" id="id_contable_auxiliar[<?php echo $contador; ?>]" onDblClick="javascript:abrir('code/contable/popup.php?id_contable_plan_cuentas=',<?php echo $contador; ?>);">

Aca la funcion invocada:

Código
  1. <script>
  2. function abrir(url, posicion) // windows open
  3. {
  4. var posicion = posicion;
  5. var url = url;
  6. var formulario;
  7. var destino = url;
  8. //var c = 1;
  9. //destino = destino.concat(c);
  10. var destin;
  11. var desti;
  12. //alert(destino);
  13. destin = document.getElementById('id_contable_plan_cuentas['+posicion+']');
  14. //alert(posicion);
  15. var real;
  16. real = destin.value;
  17. var valor = '&valor=';
  18. //alert(real);
  19. desti = url.concat(real,valor,posicion);
  20. //alert(desti);
  21. window.open(desti,""," width = 450,height=350,scrollbars=NO");
  22.  
  23. document.formID.id_contable_auxiliar['+posicion+'].value = real ;
  24. }
  25. </script>

Tiene varias lineas en comentario por las pruebas que realizaba.

Ahora el codigo de la ventana Invocada:

Las variables que recibo del GET enviado.

Código
  1. $valor = addslashes(trim($_GET['valor']));
  2.  

El boton:

Código
  1. <input type="button" onClick="Devuelve(<?php echo $valor; ?>)" value="Seleccionar Auxiliar">

Y por utlimo la funcion encargada de devolver el valor:

Código
  1. <SCRIPT>
  2. //aqui le devolvemos los datos a la ventana padre
  3. function Devuelve(valor){
  4. var valor = valor;
  5. var destin = document.getElementById('select');
  6. var real = destin.value;
  7. alert(real);
  8. self.opener.document.all('id_contable_auxiliar['+valor+']').value = real;
  9. //window.opener.document.formID.id_contable_auxiliar['+valor+'].value=real;
  10. window.close();
  11. }
  12. </SCRIPT>

Listo es todo.

Si tienen dudas pregunten, trataré de responder.  ;)


En línea

Y es que a veces pienso que si no estuviera loco no podría salir adelante.
Lo que no se es capaz de dar, en realidad no se posee, uno es poseído por ello.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Existe alguna forma de saltarse el DRM « 1 2 »
Multimedia
Valkyr 11 5,698 Último mensaje 11 Septiembre 2006, 12:05 pm
por kentchicken
browscap.ini existe forma de establecerlo sin php.ini ?
PHP
Diabliyo 3 5,074 Último mensaje 29 Septiembre 2010, 23:17 pm
por ~ Yoya ~
Pequeña Duda onclick window.open scrollbars y en el centro
Scripting
Anonymous250 1 2,809 Último mensaje 17 Diciembre 2011, 01:48 am
por Anonymous250
sobreescribir window.open en chrome falla
Desarrollo Web
engel lex 0 1,893 Último mensaje 11 Junio 2014, 03:07 am
por engel lex
¿Podemos reemplazar la plataforma x86 con un chip Open Source?
Noticias
wolfbcn 0 1,730 Último mensaje 10 Enero 2018, 02:11 am
por wolfbcn
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines