Dal popup non ritornano i dati alla pagina chiamante

di marcopa il
7 risposte

Salve, 
Ho un problema, avrei bisogno disperato di un vs. aiuto, giro intorno a questo problema da giorni senza successo…
Da un link in una pagina (Madre)  apro un popup, qui devo scegliere una posizione da una mappa, questa mi dà delle coordinate, fin qui nessun problema.
Quando confermo il popup si chiude ma non riesco a capire come portarmi il valore nella pagina chiamante.
Non voglio fare un form in php con dati Post o Get, anzi non posso, ho scelto un popup per evitare il refresh della pagina madre da dove perderei tutti i dati compilati.

Mi hanno consigliato di portare il valore in un cookie… ma poi per leggerlo nella pagina madre dovrei refreshare la Madre….

qualcuno sa consigliarmi  un'altra soluzione ? 

Grazie per l'aiuto.

7 Risposte

  • 10/05/2023 - marcopa ha scritto:


    ho scelto un popup per evitare il refresh della pagina madre da dove perderei tutti i dati compilati

    Se stai usando Angular, il refresh della “pagina madre” non dovrebbe essere un problema in quanto l'architettura del framework è fatta apposta per evitarla: piuttosto, dovresti invocare o integrare in qualche modo quella mappa all'interno dell'app principale, rendendola un componente, in breve mostrandola sempre nel contesto della pagina, e non in una pagina separata da aprire in una finestra individuale, altrimenti non stai rispettando il paradigma delle SPA (Single Page Application), dove appunto è presente solo una “pagina singola”.

  • Grazie per la risposta, 
    Non uso angular, magari, sto usando php e js, il popup viene aperto da un semplice onClick="window.open ('coordinate-gps/maps.php','newWin', 'scrollbars=no,status=no,resizable=no,top=100,left=250,width=800,height=650');"

    la pagina che evoca deve poter ricevere le coordinate quando si clicca, ma non so proprio dove sbattere la testa.

  • Non capisco come sono finito in angular, ero in javascript ed ho aggiungo un nuovo argomento, devo spostare il post? 

  • Grazie @Alka per la segnalazione, ho spostato in JavaScript

  • 10/05/2023 - marcopa ha scritto:


    Non uso angular, magari, sto usando php e js, il popup viene aperto da un semplice onClick="window.open ('coordinate-gps/maps.php','newWin', 'scrollbars=no,status=no,resizable=no,top=100,left=250,width=800,height=650');"

    Allora forse le cose si semplificano (mi sembrava strano in effetti). :D

    Ti basta usare window.opener: come vedi nella documentazione, in JS si tratta di un oggetto con cui dallo script di una pagina aperta in una nuova finestra puoi accedere all'oggetto window della finestra che l'ha aperta.

    Vedi questa risposta su SO per un esempio di implementazione.

  • Grazie, provo in serata, ti ringrazio per la risposta.
    Window.opener non l'ho mai applicato, ci studio un po e vedo come risolvere.

  • Volevo ringraziarvi per gli interventi tempestivi, alla fine non ho fatto la cosa in JS, ho preferito utilizzare bootstrap con JS e Jquery
    google map  ( servirà a chi vorrà cimentarsi in questo )  crea dei problemi con bootstrap sarà necessario dimensionare la mappa ed impostare nei CSS , io ho fatto cosi :

    Era la cosa migliore, non apre una pagina esterna ma lavora portando i valori da JS su input HIDDEN.

    /*  modifica del css per la mappa senza questo la mappa non viene mai visualizzata per mancanza di spazio. */
    #map {
       height: 450px;
       overflow: visible;
       width:100%;        /* * */
       display :block;     /* **/
    }

    #map * {
       overflow: visible;
    }

    Devo dire che anche l'aspetto grafico è sicuramente più bello del popup aperto in jscript.

    Grazie.

Devi accedere o registrarti per scrivere nel forum
7 risposte