- Home
- Categorie
- Coding e Sistemistica
- Javascript & Framework
- Passaggio dati da piu campi di testo da child a parent
-
Passaggio dati da piu campi di testo da child a parent
Ciao a tutti!
Non riesco a trovare una soluzione al mio problema! Vi spiego: con il codice sottostante passo una variabile (contenuta in una imput text) da un popup alla pagina madre esempio.php, solamente che io vorrei passare più campi e non solo uno.
Faccio un esempio, nel popup ho un form con i campi imput text1, imput text2, imput text3 e voglio che questi tre campi vadano a riempire, nella pagina madre, i campi text area1 text area2 e text area3...come posso fare?VI incollo il codice delle due pagine incriminate:
POPUP
<script language="javascript"> function tornaValore() { window.opener.document.getElementById("val_ritornato").value = document.getElementById("val_da_tornare").value window.close() } </script> </head> <body> <br> Valore da ritornare: <input type="text" id="val_da_tornare"><input type="button" value="Torna il valore e chiudi!" onClick="tornaValore()"> </body> ```e questa è la pagina esempio.php
<title>Documento senza titolo</title>
<script language="javascript">
function MM_openBrWindow(theURL,winName,features) { //v2.0
window.open(theURL,winName,features);
}
</script>
</head><body>
<a href="popup.html" onClick="MM_openBrWindow('popup.html', 'nuovaFinestra','width=400,height=600'); return false;" onKeyPress="MM_openBrWindow('popup.html', 'nuovaFinestra','width=400,height=400'); return false;" title="Esempio di pop-up accessibile - Link interno - Nuova finestra">Apri
il pop-up</a><br><textarea id="val_ritornato" name="prova" cols="100" rows="5" ></textarea>
</body>
Grazie anticipatamente, Fede
-
Ciao Fede717,
Basta aggiungere i campi text e textarea e il comando javascript: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;** 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"> <input type="button" value="Torna il valore e chiudi!" onClick="tornaValore()"> </body>
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>
-
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
Sbaglio?:?
-
Per pulsante di scelta intendi i radiobutton o i checkbox?
-
@ayrton2001 said:
Per pulsante di scelta intendi i radiobutton o i checkbox?
Ciao, intendo i radiobutton
Grazie..
Federico
-
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>
-
Perdonami ma non ho capito come funziona la cosa..
-
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
-
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...
-
Ciao Fede717,
attento ai nomi.
O chiami i radiobutton myradio o li chiami val_da_tornare4.
-
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"...
-
Strano, a me funziona.
Mi riposti l'ultimo codice da te provato?
-
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="">
-
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; } }
-
Grazie infinite!
Funziona...
-
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.. sbaglio qualcosa io?
Grazie anticipatamente,
Fede
-
Che ID hanno i 5 radio?
Magari è solo un problema di ID.
-
@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