[Javascript] Passaggio valore da popup a pagina madre

  • Creatore Discussione Creatore Discussione vasomik
  • Data di inizio Data di inizio

vasomik

Nuovo Utente
14 Mar 2017
31
0
6
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
 
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?
 
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?

non sono molto preparato in materia ma mi sono trovato questo problema , puoi farmi un esempio o darmi una spiegazione più approfondita?

vasomik
 
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:
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

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.....
 
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!
 

Discussioni simili