ho scritto per ora il seguente codice, ma ci deve essere qualche errore, dato che non funziona nulla.
Spero che qualcuno mi possa aiutare visto che è la prima volta mi cimento col javascript.
Dopo la select nell'html ho aggiunto un campo div dentro al quale inserirò il codice per la nuova select ed un nuovo div (nel quale inserirò eventualmente un'altra select ed un altro div affinchè funzioni a cascata).
Per ora la funzione che copia il contenuto di ogni select nel campo di input l'ho trascurata, quindi il suo funzionamento non dovrebbe essere quello previsto (il condizionale è d'obbligo perchè in realtà non funziona nulla)
codice:
<script language="javascript">
var c=0;
//questa funzione attribuisce il valore dell'input ad un form di un'altra finestra.
//non interferisce con le funzioni che stiamo studiando
function valeur(test){
window.opener.document.forms['form_prenotazioni'].<?php echo "Conferma".$id_ordinato;?>.value = document.form.codice_def.value;}
function aggiungi(){
// assegna all'input text "codice_def" il valore della prima select "conferma0"
document.form.codice_def.value=document.form.conferma0.value;
prepara_select();
}
function prepara_select() {
var selezione='';
//genera il nome dell'id del div dove va inserita la select
//l'id è composto da una parte fissa, "spazio", e una parte dinamica data dalla variabile c
var nome_div='spazio'+c;
//incremento la variabile c perchè ora devo generare i nuovi campi select e div
c++;
selezione+='<select name= "conferma'+c+ '" onChange="aggiungi();" />';
//stampa le varie <option> della select con una funzione php. Se serve ve le metto a parte
selezione+='<?php echo $option; ?>';
selezione+='</select>';
//aggiungo un div vuoto per ripetere la funzione e l'inserimento di una nuova select
selezione+='<div id="spazio'+c+'"></div>';
//inserisco il codice di selezione all'interno del div corrente (il cui id è contenuto nella var nome_div).
if(document.all) {
document.all(nome_div).innerHTML=selezione;
} .
else if(document.getElementById) {
document.getElementById(nome_div).innerHTML =selezione;
}
else {
alert("il tuo browser non supporta questo metodo");
}
}
</script>
...
<div align="center" id="spazio">
<form name="form">
<select name="conferma0" onChange="aggiungi();">
<?php
echo $option; //stampa le voci della select tirate fuori dal database
?>
</select>
<span id="spazio0"></span>
<input type="text" name="codice_def" value="" size="10">
<input type="button" onClick="valeur();" value="Invia" action="">
</p>
</form>
</div>
Non funziona e non funziona nemmeno il metodo valeur() che senza questo codice invece funziona alla grande.