• User

    Grazie inifinite per la risposta 😄
    Un'altra domanda.. ma se volessi mettere al posto del campo di testo un gruppo di pulsanti di scelta... come posso fare? Perchè per far si che il valore ritorni alla finestra madre dovrei asssegnare a tutti i pulsanti di scelta uno stesso id...ma verrebbe ritornato sempre lo stesso valore :mmm:
    Sbaglio?:?


  • Super User

    Per pulsante di scelta intendi i radiobutton o i checkbox?


  • User

    @ayrton2001 said:

    Per pulsante di scelta intendi i radiobutton o i checkbox?

    Ciao, intendo i radiobutton 😉
    Grazie..
    Federico


  • Super User

    Gli id devono essere sempre diversi in una pagina, ma stesso name per il radiobutton

    
    <script language="javascript">
    function tornaValore() {
    
    window.opener.document.getElementById("val_ritornato1").value = document.getElementById("val_da_tornare1").value;
    window.opener.document.getElementById("val_ritornato2").value = document.getElementById("val_da_tornare2").value;
    window.opener.document.getElementById("val_ritornato3").value = document.getElementById("val_da_tornare3").value;
    
    **for (counter = 0; counter < document.getElementsByName("myradio").length; counter++){ 
        if (document.getElementsByName("myradio")[counter].checked){ 
            window.opener.document.getElementById("radio_ritornato").value = document.getElementById("val_da_tornare3").value;
        } 
    } 
    ** 
    window.close();
    }
    </script>
    </head>
    <body>
    <br>
    Valore da ritornare 1: <input type="text" id="val_da_tornare1">
    Valore da ritornare 2: <input type="text" id="val_da_tornare2">
    Valore da ritornare 3: <input type="text" id="val_da_tornare3">
    **Radiobutton da tornare: 
    <input type="radio" id="myradio1" name="myradio" value="si" />
    <input type="radio" id="myradio2" name="myradio" value="no" />
    <input type="radio" id="myradio3" name="myradio" value="forse" />**
    
    <input type="button" value="Torna il valore e chiudi!" onClick="tornaValore()">
    </body>
    
    

  • User

    :mmm:
    Perdonami ma non ho capito come funziona la cosa.. :mmm:


  • Super User
    
    for (counter = 0; counter < document.getElementsByName("myradio").length; counter++){ 
        if (document.getElementsByName("myradio")[counter].checked){ 
            window.opener.document.getElementById("radio_ritornato").value = document.getElementById("val_da_tornare3").value;
        } 
    } 
    
    

    Per ogni radiobutton con name myradio, verifica se è checked ed in tal caso ritorna il valore selezionato.

    
    <input type="radio" id="myradio1" name="myradio" value="si" />
    <input type="radio" id="myradio2" name="myradio" value="no" />
    <input type="radio" id="myradio3" name="myradio" value="forse" />
    
    

    Sono i 3 radiobutton che devono avere stesso attributo name


  • User

    :mmm:
    Ho provato ma non funziona...

    questp è il popup:

    <script language="javascript">
    function tornaValore() {
    
    window.opener.document.getElementById("val_ritornato1").value = document.getElementById("val_da_tornare1").value;
    window.opener.document.getElementById("val_ritornato2").value = document.getElementById("val_da_tornare2").value;
    window.opener.document.getElementById("val_ritornato3").value = document.getElementById("val_da_tornare3").value;
    
    for (counter = 0; counter < document.getElementsByName("myradio").length; counter++){ 
        if (document.getElementsByName("myradio")[counter].checked){ 
            window.opener.document.getElementById("radio_ritornato").value = document.getElementById("val_da_tornare4").value;
        } 
    } 
     
    window.close();
    }
    </script>
    </head>
    <body>
    <br>
    Valore da ritornare 1: <input type="text" id="val_da_tornare1">
    Valore da ritornare 2: <input type="text" id="val_da_tornare2">
    Valore da ritornare 3: <input type="text" id="val_da_tornare3">
    Radiobutton da tornare: 
    <input type="radio" id="myradio1" name="val_da_tornare4" value="si" />
    <input type="radio" id="myradio2" name="val_da_tornare4" value="no" />
    <input type="radio" id="myradio3" name="mval_da_tornare4" value="forse" />
    
    <input type="button" value="Torna il valore e chiudi!" onClick="tornaValore()">
    </body>
    ```e questa è la pagina esempio.php:
    
    

    <textarea id="val_ritornato1" name="prova1" cols="100" rows="5" ></textarea>
    <textarea id="val_ritornato2" name="prova2" cols="100" rows="5" ></textarea>
    <textarea id="val_ritornato3" name="prova3" cols="100" rows="5" ></textarea>

    <textarea id="radio_ritornato4" name="radio_ritornato" cols="100" rows="5" ></textarea>

    
    Sbaglio qualcosa? :rollo:
    Grazie...

  • Super User

    Ciao Fede717,
    attento ai nomi.
    O chiami i radiobutton myradio o li chiami val_da_tornare4.


  • User

    Anche mettendo i nomi giusti, lo script non funziona... Non mi torna i valori (se seleziono il primo radio, mi dovrebbe tornare il valore del primo radio selezionato, se seleziono il secondo mi torna il valore del secondo e così via..) in uno stesso campo di testo, in questo caso "radio_ritornato"... :mmm:


  • Super User

    Strano, a me funziona.
    Mi riposti l'ultimo codice da te provato?


  • User

    Certamente,
    questo è il popup:

    <script language="javascript">
    function tornaValore() {
    
    window.opener.document.getElementById("val_ritornato1").value = document.getElementById("val_da_tornare1").value;
    window.opener.document.getElementById("val_ritornato2").value = document.getElementById("val_da_tornare2").value;
    window.opener.document.getElementById("val_ritornato3").value = document.getElementById("val_da_tornare3").value;
    
    for (counter = 0; counter < document.getElementsByName("myradio").length; counter++){ 
        if (document.getElementsByName("myradio")[counter].checked){ 
            window.opener.document.getElementById("radio_ritornato").value = document.getElementById("myradio").value;
    
        } 
        
    } 
     
    window.close();
    }
    </script>
    </head>
    <body>
    <br>
    Valore da ritornare 1: <input type="text" id="val_da_tornare1">
    Valore da ritornare 2: <input type="text" id="val_da_tornare2">
    Valore da ritornare 3: <input type="text" id="val_da_tornare3">
    Radiobutton da tornare: 
    <input type="radio" id="myradio1" name="myradio" value="si" />
    <input type="radio" id="myradio2" name="myradio" value="no" />
    <input type="radio" id="myradio3" name="myradio" value="forse" />
    
    <input type="button" value="Torna il valore e chiudi!" onClick="tornaValore()">
    </body>
    ```e questa è la pagina esempio.php:
    
    

    <input name="val_ritornato" type="text" id="val_ritornato1" value="">
    <input name="val_ritornato" type="text" id="val_ritornato2" value="">
    <input name="val_ritornato" type="text" id="val_ritornato3" value="">
    <input name="radio_ritornato" type="text" id="radio_ritornato" value="">


  • Super User

    Si, c'è un errore. Corregi la riga in grassetto:

    
    for (counter = 0; counter < document.getElementsByName("myradio").length; counter++){ 
        if (document.getElementsByName("myradio")[counter].checked){ 
            window.opener.document.getElementById("radio_ritornato").value = document.getElementsByName("myradio")[counter].value;
    
        } 
    }
    
    

  • User

    Grazie infinite! 🙂
    Funziona...


  • User

    :mmm:
    Scusate se riesumo questo post, ma mi sono accorto che lo script "limita" il numero di radio a 4 opzioni.. se ne metto 5 lo script non funziona.. :mmm: sbaglio qualcosa io?
    Grazie anticipatamente,
    Fede


  • ModSenior

    Che ID hanno i 5 radio?
    Magari è solo un problema di ID.


  • User

    @marcocarrieri said:

    Che ID hanno i 5 radio?
    Magari è solo un problema di ID.

    da icone_0 a icone_3 ... se metto icone_4 non funziona, ovvero non chiude la finestra e passa i valori..:?
    Grazie...
    Fede