Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    137

    aggiungere una select su evento onChange

    Sto scrivendo uno script che quando seleziono una voce di una select mi dovrebbe scrivere il valore in un input text e aggiungermi sotto alla select una nuova select che faccia la precisa identica cosa.. e così a cascata.

    ora la prima parte, il copiare il valore, riesce anche a me, ma non ho la più pallida idea di come far aggiungere un'altra select. Potete aiutarmi?

    Questo quanto fatto fin'ora:

    codice:
    <script language="javascript">
     function aggiungi(){
    	 document.form.codice_def.value=document.form.conferma.value;
     }
     </script>
    
    ...
    
    <div align="center">
    <form name="form">
    
    <select name="conferma" onChange="aggiungi();">	
    <option selected>Scegli il codice</option>
    <option>---</option>
    
    </select>
    
    
    
    
    <input type="text" name="codice_def" value="" size="10">
    </p>
    </form>
    $Pippo... la variabile preferita dall'ingegnere!

  2. #2
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    137
    up
    $Pippo... la variabile preferita dall'ingegnere!

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    137
    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.
    $Pippo... la variabile preferita dall'ingegnere!

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    137
    risolto in parte.
    Il codice andava bene, ma nella generazione delle opzioni metteva i tag su più righe e a quanto pare il javascript vuole tutto sulla stessa riga.

    ora però ho un problema proprio di java (stavolta ne sono sicuro ).. infatti non mi va oltre il secondo select. Immagino sia colpa del passaggio di variabile ma non capisco dove stia il problema.
    Dateci un occhio se possibile (ho cambiato un po' di cose nel codice rispetto al primo postato (fa fede questo):

    codice:
     
    <script language="javascript">
    
    var c=0;
    function prendiElementoDaId(id_elemento) {
    var elemento;
    if(document.getElementById)
    elemento = document.getElementById(id_elemento);
    else
    elemento = document.all[id_elemento];
    return elemento;
    };function prepara_select(c) {
    var selezione='';
    var nome_div='';
    c++;
    nome_div='spazio'+c;
    selezione+='<select name="conferma'+c+'" onChange="c=aggiungi(c);">';
    selezione+='<option selected>Scegli il codice</option><option>---</option><option value="1021388">1021388 - 08:30 - 1</option>';
    selezione+='</select>';
    selezione+='<div id="spazio'+(c+1)+'"></div>';
    
    prendiElementoDaId(nome_div).innerHTML = selezione;
    }
    
    function valeur(test){
    window.opener.document.forms['form_prenotazioni'].Conferma487136.value = document.form.codice_def.value;}
    
    function aggiungi(c){
    var nome_conferma='spazio'+c;
    document.form.codice_def.value+=document.form.getElementsByTagName('select')[c].value;
    prepara_select(c);
    return c;
    }
    </script>
    
    <form name="form">
    <div id="spazio0">
    <select onchange="c=aggiungi(c);" name="conferma0">
    <option selected="">
    
    Scegli il codice
    
    </option>
    <option>
    
    ---
    
    </option>
    <option value="1021388">
    
    1021388 - 08:30 - 1
    
    </option>
    
    </select>
    </div>
    
    <div id="spazio1"></div>
    
    
    
    <input type="text" size="10" value="" name="codice_def">
    <input type="button" action="" value="Invia" onclick="valeur();">
    </p>
    </form>
    $Pippo... la variabile preferita dall'ingegnere!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.