Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    window.opener dopo invio form

    Ecco il mio problema.
    In una pagina ho un link che mi apre un popup con window.open() passando alcune variabili php.
    Il popup mostra una serie di titoli linkati che richiamano una funzione js che non fa altro che passare a window.opener 3 valori e poi chiude automaticamente la finestra stessa.
    Fin qui funziona tutto perfettamente.
    Il problema salta fuori quando dentro il popup eseguo la ricerca tra i titoli di cui sopra: viene inviata una form che passa con degli hidden tutti i valori che mi servono, ma a quel punto window.opener sembra non esistere più e la funzione js da errore "previsto identificatore". Non sono sicuro che il problema sia proprio window.opener, ma così a logica non vedo altra spiegazione.
    Qualche idea?
    Ah, non posso dare un nome alla finestra opener perchè condivide l'header con le altre pagine.

    Grazie, spero che qualcuno riesca ad aiutarmi.

  2. #2
    perchè, in un hidden, non passi anche il nome dell'opener?

    codice:
    document.nomeform.nomecampohidden.value=window.opener.name;
    e poi, nella seconda pagina che apri nella popup:

    codice:
    <script language="JavaScript">
    
    var paginamadre="<?php $_POST['nomecampohidden']; ?>";
    
    </script>
    ciao

  3. #3
    Passo il nome del form, ma non il nome della pagina opener.

    codice:
    onClick=\"window.open('pop_correlate.php?formname=form_add_art&corrname=correlata$i&table_figlio=table_figlio$i&id_figlio=id_figlio$i','','status=no,toolbar=no,scrollbars=no,width=600,height=570');\"
    (non fate caso agli slash prima degli apici, mi trovo dentro codice PHP...)

    E questa è la funzione js

    codice:
    <script language="javascript">
    function PassaChiudi(titolo,id_figlio,table_figlio)
    {
    	window.opener.document.<?=$formname;?>.<?=$corrname;?>.value=titolo;
    	window.opener.document.<?=$formname;?>.<?=$id_figlio;?>.value=id_figlio;
    	window.opener.document.<?=$formname;?>.<?=$table_figlio;?>.value=table_figlio;
    	self.close();
    }
    </script>
    Funziona solo prima di eseguire una ricerca, dopo sembra proprio non prendere più il valore di opener.

  4. #4
    e perchè non passi un riferimento alla finestra-madre, il nome per esempio, nel momento in cui apri la popup?

  5. #5
    Non so come dare il nome alla finestra opener perchè come dicevo ho l'header condiviso con altre finestre (viene richiamato come blocco di codice in un funzione PHP da più pagine).
    Esiste un altro modo per dare il nome ad una finestra? io l'ho sempre fatto nell'header...

  6. #6
    il nome lo dai semplicemente con window.name='nome'.

  7. #7
    Si, sono ignorante.
    Ho fatto come mi hai detto, e in effetti ora la finestra "madre" ha il nome che gli ho dato (ho verificato facendo un alert(window.name)).
    Ora però non so come richiamare quella finestra nella funzione della popup, ho provato così ma non funziona:

    codice:
    <script language="javascript">
    function PassaChiudi(titolo,id_figlio,table_figlio)
    {
    	window.nomemadre.document.<?=$formname;?>.<?=$corrname;?>.value=titolo;
    	window.nomemadre.document.<?=$formname;?>.<?=$id_figlio;?>.value=id_figlio;
    	window.nomemadre.document.<?=$formname;?>.<?=$table_figlio;?>.value=table_figlio;
    	self.close();
    }
    </script>

  8. #8

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.