Foros del Web » Programando para Internet » Javascript »

mi window.opener, funciona solo en algunos casos :(

Estas en el tema de mi window.opener, funciona solo en algunos casos :( en el foro de Javascript en Foros del Web. Hola amigos, necesito algo de vuestra ayuda en un lio que no entiendo. Tengo una aplicacion en la cual abro un pop-up para buscar datos ...
  #1 (permalink)  
Antiguo 14/12/2010, 14:07
Avatar de Copia  
Fecha de Ingreso: noviembre-2009
Mensajes: 309
Antigüedad: 14 años, 6 meses
Puntos: 4
mi window.opener, funciona solo en algunos casos :(

Hola amigos, necesito algo de vuestra ayuda en un lio que no entiendo.
Tengo una aplicacion en la cual abro un pop-up para buscar datos y una vez procesados los devuelva a la pagina que lo llamo.

Pues bien, me corre todo perfecto cuando lo llamo para el formulario que lo hize, pero lo intente implementar a otro y me funciona todo pero no me devuelve los datos.

la pagina padre tiene un formulario de name="formulario",
dos input uno oculto y otro no de name=BidCliente y name=Nombre respectivamente.

El pop-up es un buscador, que primero lista las coincidencias y luego de hacer clic sobre lo que se busca se muestra con ajax una tabla con un formulario oculto de name=formuDetalle y los campos dos campos input como en la pagina padre.

Como dije en un caso me funciona y en otro no, les dejo los codigos inbolucrados.

Esta es la funcion con la que llamo a mi pop-up:
Código:
<script type="text/javascript">
             //  var pop_up;
               $(document).ready(function(){
                   $("a[rel=pop-up]").click(function(){
                       var caracteristicas = "location=no, status=no, scrollbars=no, resizable=no, width=507, height=449, top=85, left=140";
                       pop_up = window.open(this.href,'Buscador2',caracteristicas);
                       return false;
                   });
               });
           </script>
y esta otra es la funcion para regresar los datos.
Código PHP:
<?php
               
echo 'function devolverDatos(){                   
                       var nombreEncontrado = document.formuDetalle.camp2.value +" "+document.formuDetalle.camp3.value;                      
                       opener.document.' 
$porurl['formulario'] . '.' $porurl['rem1'] . '.value = nombreEncontrado;
                       opener.document.' 
$porurl['formulario'] . '.' $porurl['idbus'] . '.value = document.formuDetalle.camp1.value;                       
                       alert(nombreEncontrado);  /*esto es para comprobar si se ejecuta el script en un caso funciona y en otro no    */                
                        }'
;
                
?>
Esta funcion se activa al precionar un boton aceptar:
Código PHP:
<a  href="JavaScript:close();" onClick="devolverDatos()"  />Aceptar</a
  #2 (permalink)  
Antiguo 14/12/2010, 14:20
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 11 meses
Puntos: 1012
Respuesta: mi window.opener, funciona solo en algunos casos :(

no voy a solventar tu problema, es mas me gustaría hacerte una pregunta. por qué usais un librería para hacer algo tan sencillo como lo que te ocupa?? tal ve soy yo la única que no ve ventaja alguna en ello??
  #3 (permalink)  
Antiguo 14/12/2010, 14:27
Avatar de Copia  
Fecha de Ingreso: noviembre-2009
Mensajes: 309
Antigüedad: 14 años, 6 meses
Puntos: 4
Respuesta: mi window.opener, funciona solo en algunos casos :(

hola isaBelM bueno si te refieres al uso de jquery, pues no se, lo hize porque me estare acostumbrando y no tanto por la ventaja.
Lo que me gustaria saber si tienes alguna explicacion para lo que me esta pasando.
  #4 (permalink)  
Antiguo 14/12/2010, 20:39
Avatar de Copia  
Fecha de Ingreso: noviembre-2009
Mensajes: 309
Antigüedad: 14 años, 6 meses
Puntos: 4
Respuesta: mi window.opener, funciona solo en algunos casos :(

disculpen el post doble, pero se me ocurrio que tal vez el error este es porque estoy mesclando php con javascript y entonces lo que intento hacer ahora es todo por javascript y tambien encontre problemas.
Código:
     function devolverDatos(){                    
                      var idbuscado = $("#idbus").val();
                      var  formOriginal = $("#formulario").val();
                      var reemp1 = $("#rem1").val();
                      var nombreEncontrado = $("#camp2").val()+" "+$("#camp3").val();                      
                      var opner = "opener.document."+formOriginal+"."+reemp1+".value = "+nombreEncontrado+"aaa";
                      var opner4 = 'opener.document.'+formOriginal+'.'+idbus+'.value = '+$("#camp1")+'.val()';
                       
                      }
bueno puse var opner para guardar toda la sentencia opener dentro de esta y poder concatenar asi el nombre del input al que deseo reemplazar. pero estube viendo que eso no es posible, ya que el codigo solo se ejecuta hasta nombreEncontrado y luego no pasa nada, estas pruebas lo hize con alerts despues de cada sentencia.

¿Como resuelvo esto o el problema original con el que empezo el post?
  #5 (permalink)  
Antiguo 14/12/2010, 23:45
Avatar de Copia  
Fecha de Ingreso: noviembre-2009
Mensajes: 309
Antigüedad: 14 años, 6 meses
Puntos: 4
Respuesta: mi window.opener, funciona solo en algunos casos :(

hola nuevamente y perdonen el tremendo triple post seguido lo que pasa es que sigo intentando resolver este problema el script lo tengo como esto:

Código:
 <script type="text/javascript">               
                function devolverDatos(){                                          
                      var nombreEncontrado = ""+$("#camp2").val()+" "+$("#camp3").val()+"";
                      opener.document.<?php echo $porurl['formulario'].".".$porurl['rem1']; ?>.value = nombreEncontrado;
                      opener.document.<?php echo $porurl['formulario'].".".$porurl['idbus']; ?>.value = $("#camp1").val();
                      }
      </script>
Ahora haciendo pruebas con firebug me da el error en esta linea:
Código:
             opener.document.<?php echo $porurl['formulario'].".".$porurl['rem1']; ?>.value = nombreEncontrado;
pero solo en un caso.

Por ejemplo: yo tengo un archivo llamado index.php que llama a este buscador buscador.php
luego tengo index2.php y llama al mismo buscador para hacer la misma funcion y con input con el mismo nombre. En index.php corre perfecto, pero en index2.php no y el firebug me muestra el error en la linea que les dije.

Quiza sea una simplesa pero me esta costando resolver. :S
  #6 (permalink)  
Antiguo 14/12/2010, 23:52
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 1 mes
Puntos: 1284
Respuesta: mi window.opener, funciona solo en algunos casos :(

Hola:

var opner = "opener.document."+formOriginal+"."+reemp1+".v alue = "+nombreEncontrado+"aaa";
var opner4 = 'opener.document.'+formOriginal+'.'+idbus+'.value = '+$("#camp1")+'.val()';

Esto equivaldría a...
var opner = opener.document[formOriginal][reemp1].value=nombreEncontrado+"aaa";
var opner4 = opener.document[formOrigina][idbus].value = $("#camp1").val();

La parte de la librería supongo que estará bien...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #7 (permalink)  
Antiguo 15/12/2010, 01:56
Avatar de Copia  
Fecha de Ingreso: noviembre-2009
Mensajes: 309
Antigüedad: 14 años, 6 meses
Puntos: 4
Respuesta: mi window.opener, funciona solo en algunos casos :(

no me funciona amigo.
Vi que eso de usar los corchetes es para reemplazar el valor de una variable, pero netbeans me da error. y al correr la funcion no pasa nada.

Etiquetas: Ninguno
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 15:57.