[Javascript] Passaggio valore da popup a pagina madre

Discussione in 'Javascript' iniziata da vasomik, 6 Dicembre 2017.

  1. vasomik

    vasomik Nuovo Utente

    Registrato:
    14 Marzo 2017
    Messaggi:
    29
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Sesso:
    Maschio
    Ciao,

    il mio problema è il seguente.
    In una pagina, che definisco madre, tramite un link, apro una finestra popup in questo modo:

    Codice:
    function aprifinestra()
    {
    weblink=window.open("popupQE.html","Quota Esente","width=300,height=100,left=20,top=20");
    }
    
    e almeno questo funziona!!!

    Nel popup ho questo:

    Codice:
    <form name="figlio">
    <table>
    <tr>
    <td><input type="radio" name="QEScelta" value="1" onclick="pippo()"></td><td>Valore Quota Esente 1</td>
    </tr>
    <tr>
    <td><input type="radio" name="QEScelta" value="2"></td><td>Valore Quota Esente 2</td>
    </tr>
    </table>
    </form>
    
    In funzione della scelta del radio della finestra popup devo riportare il valore in una textbox che ha nome="QuotaEsente[]". Di queste textbox inizialmente ce n'è solo una ma potenzialmente potrebbero essercene n, le incremento o decremento tramite un bottone con apposito codice. QuotaEsente[] è contenuta in un form che si chiama form1.
    Ho provato con window.opener ma senza risultati.

    Ecco la funzione che avevo scritto:

    Codice:
    function QE(n) {
    var mamma = window.opener;
    var form = mamma.document.forms['form1'];
    var elemento = form.elements['QuotaEsente'];
    // ora facciamo cambiare il valore di QuotaEsente nella pagina madre
    elemento.value = n;
    // chiudo la popup
    self.close();
    }
    
    e lo richiamavo così onclick="QE(this)"
    Sapete aiutarmi, per favore?

    vasomik
     
  2. macus_adi

    macus_adi Utente Attivo

    Registrato:
    5 Dicembre 2017
    Messaggi:
    57
    Mi Piace Ricevuti:
    4
    Punteggio:
    8
    Sesso:
    Maschio
    Occupazione:
    Developer
    Località:
    L'Aquila
    Non credo tu posso intercettare un valore da una nuova finestra, magari sbaglio.
    Non converrebbe aprire una modale passando i dati ad un sistema di templating con ciò che serve?
     
  3. vasomik

    vasomik Nuovo Utente

    Registrato:
    14 Marzo 2017
    Messaggi:
    29
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Sesso:
    Maschio
    non sono molto preparato in materia ma mi sono trovato questo problema , puoi farmi un esempio o darmi una spiegazione più approfondita?

    vasomik
     
  4. macus_adi

    macus_adi Utente Attivo

    Registrato:
    5 Dicembre 2017
    Messaggi:
    57
    Mi Piace Ricevuti:
    4
    Punteggio:
    8
    Sesso:
    Maschio
    Occupazione:
    Developer
    Località:
    L'Aquila
    Questa è una pagina di prova utilizzando Bootstrap e JQuery.
    Quando salvi il modale prendi il valore contenuto nell'input e chiudi la modale....
    Spero vada bene e che sia abbastanza chiaro il codice
    HTML:
    <html>
    <head>
        <script
                src="https://code.jquery.com/jquery-3.2.1.js"
                integrity="sha256-DZAnKJ/6XZ9si04Hgrsxu/8s717jcIzLy3oi35EouyE="
                crossorigin="anonymous"></script>
        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css" integrity="sha384-rHyoN1iRsVXV4nD0JutlnGaslCJuC7uwjduW9SVrLvRYooPp2bWYgmgJQIXwl/Sp" crossorigin="anonymous">
        <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
    </head>
        <body>
            <div class='container'>
                <div class='row'>
                    <div class='col-md-12'>
                        <h3>il valore inserito nella modale è : <span id='my_val'></span></h3>
                    </div>
                    <div class='col-md-12 text-center'>
                        <a class='btn btn-success btn-xs modal_open'>Apri Mdale</a>
                    </div>
                </div>
            </div>
            <div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
                <div class="modal-dialog" role="document">
                    <div class="modal-content">
                        <div class="modal-header">
                            <h4 class="modal-title" id="myModalLabel">TITOLO</h4>
                        </div>
                        <div class="modal-body">
                            <input id='inserisci_valore' class='form-control' value='' placeholder='inserisci un valore'>
                        </div>
                        <div class="modal-footer">
                            <button type="button" class="btn btn-primary" id='save'>Salva</button>
                        </div>
                    </div>
                </div>
            </div>
        <script>
            $(document).ready(function(){
                /*questo bottone apre la modale che attualmente è chiusa vede il selettore con classe"modal_open"*/
                var btn_click=$('.modal_open');
               //bottone della modale con id=save 
               var input_val=$('#save');
               //selettore dove passare i dati con id etc...
                var my_val=$('#my_val');
    
    //quando clicco sul bottone farò qualcosa
                btn_click.on("click",function(){
    //in questo caso apro la modale
                    $('#myModal').modal('show');
    //quando salvo succederà qualcosa
                    $('#save').click(function(){
    //nascondo la modale
                        $('#myModal').modal('hide');
    //prelevo il valore dell'input e lo inserisco nel selettore dove mi serve
                        my_val.html($('#inserisci_valore').val());
                    });
                });
            });
        </script>
        </body>
    </html>
    Spiegazione brutale ma credo sia comprensibile...
     
    Ultima modifica: 7 Dicembre 2017
  5. vasomik

    vasomik Nuovo Utente

    Registrato:
    14 Marzo 2017
    Messaggi:
    29
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Sesso:
    Maschio
    Ciao, scusa la risposta in ritardo.
    Ti ringrazio per il tuo codice ma continuo ad avere delle difficoltà. Il mio più grande problema è scrivere il contenuto della text della modale in una delle input che ci sono nella madre. Il fatto è che queste input hanno tutte lo stesso nome (name="testo[]"). Queste text vengono create in base alle necessità dell'utente tramite la pressione di un tasto che processa del codice javascript e, cominciando da una, ce ne possono essere n distribuite in differenti div. Detto questo, a fianco ad ognuna di queste text ci sarà un pulsante che apre una finestra modale.....
     
  6. macus_adi

    macus_adi Utente Attivo

    Registrato:
    5 Dicembre 2017
    Messaggi:
    57
    Mi Piace Ricevuti:
    4
    Punteggio:
    8
    Sesso:
    Maschio
    Occupazione:
    Developer
    Località:
    L'Aquila
    Allora passi alla funzione il selettore che ha generato l'evento, e attraverso i l'attributo data recuperi le informazioni che ti servono...
    Banalmente alle input che generi potresti passargli un valore casuale e metterlo in data-attributo_che_serve="valore_casuale", al click di quello scateni l'evento che recupera il valore attraverso data-attributo_che_serve!
     
Sto caricando...

Condividi questa Pagina