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:
<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:
<script>
function abrir(url, posicion) // windows open
{
var posicion = posicion;
var url = url;
var formulario;
var destino = url;
//var c = 1;
//destino = destino.concat(c);
var destin;
var desti;
//alert(destino);
destin = document.getElementById('id_contable_plan_cuentas['+posicion+']');
//alert(posicion);
var real;
real = destin.value;
var valor = '&valor=';
//alert(real);
desti = url.concat(real,valor,posicion);
//alert(desti);
window.open(desti,""," width = 450,height=350,scrollbars=NO");
document.formID.id_contable_auxiliar['+posicion+'].value = real ;
}
</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:
$valor = addslashes(trim($_GET['valor']));
El boton:
Código:
<input type="button" onClick="Devuelve(<?php echo $valor; ?>)" value="Seleccionar Auxiliar">
Y por utlimo la funcion encargada de devolver el valor:
Código:
<SCRIPT>
//aqui le devolvemos los datos a la ventana padre
function Devuelve(valor){
var valor = valor;
var destin = document.getElementById('select');
var real = destin.value;
alert(real);
self.opener.document.all('id_contable_auxiliar['+valor+']').value = real;
//window.opener.document.formID.id_contable_auxiliar['+valor+'].value=real;
window.close();
}
</SCRIPT>
Listo es todo.
Si tienen dudas pregunten, trataré de responder.