Io so scrivertelo in JavaScript, e stamani mi va di fartelo volentieri, ma non è proprio uno degli esempi più semplici (!) per uno che si accosta a questo linguaggio di programmazione.
L' istruzione JS che fa la magia, è window.opener che consente di riferirsi dalla pop-up alla finestra madre da cui è stata lanciata.
Pop-up ne possiamo avere di due tipi:
- pop-up "scritta", che ho impiegato nell' esempio;
- pop-up "caricante" che richiama (che carica) un file esterno, con questa sintassi:
window.open('path/filename.html', 'nome_popup', 'width=300, height=220');
Nell' esempio adopero una pop-up "scritta" per avere il tutto in unico Documento.
codice:
<html>
<head><title>From pop-up to parent window data transfer</title>
<script type="text/javascript">
function pop_up(){
win=window.open('', 'elenco', 'width=300, height=220');
win.document.open();
win.document.writeln('<html><body>');
win.document.writeln('
<input value="Tina" name="nomi" type="radio" '+
'onclick="window.opener.document.getElementById(\\'campo_testo\\').value=this.value"> Tina ');
win.document.writeln('
<input value="Paola" name="nomi" type="radio" '+
'onclick="window.opener.document.getElementById(\\'campo_testo\\').value=this.value"> Paola ');
win.document.writeln('
<input value="Enzo" name="nomi" type="radio" '+
'onclick="window.opener.document.getElementById(\\'campo_testo\\').value=this.value"> Enzo ');
win.document.writeln('');
win.document.writeln('</body></html>');
win.document.close();
win.focus();
}
</script>
</head>
<body bgcolor="#ff9090">
<div align="center">
<input id="campo_testo" value="" type="text" size="">
<input value="apri elenco" type="button" onclick="pop_up();">
</div>
</body>
</html>
.document.write(''); oppure .document.writeln(''); consentono di scrivere in HTML il contenuto della pop-up proprio come se si trattasse di un HTML Document a se' stante.
La ripresa degli apici ' ed il segno di concatenazione + ci permettono di andare a capo nella stesura del codice, altrimenti dovresti mantenere ininterrotta la riga di scrittura per ciascuna .document.writeln('bla bla bla');
Compaiono anche degli escape characters \ c'è parecchia roba, insomma ...