• 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