Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    selezionare in una sola volta più selezioni con gli stessi valori

    Ciao a tutti,
    ho un problema particolare a cui non so porre rimedio.

    Ho una pagina con molte select identiche dove un utente deve selezionare una opzione oppure un altra. Vorrei fare in modo che spunti il valore selezionato da una select, sempre identica alle altre, su tutte... come il "Seleziona Tutti" dei checkbox.

    Sicuramente non mi sono spiegato bene, faccio un esempio pratico:

    Select principale:
    1 - Mauro
    2 - Giorgia
    3 - Michele

    E una sfilza di altre select del tutto identiche come valori. Ora, se io selezionato Mauro nella select principale, tutte le altre select devono diventare Mauro.

    Sono arrivato, secondo me, a metà strada, cioè ho risolto una parte del problema utilizzando, appunto, una funzione Javascript "Seleziona Tutti" da phpMyadmin.


    ecco il codice completo:
    codice:
    <body>
    
    <form name="sel" method="post" action="">
    <script>
    <!--//
    	function sel_tutti(the_form,cosa) {
    	
        var elts = (typeof(document.forms[the_form].elements['utente[]']) !='undefined')
                      ? document.forms[the_form].elements['utente[]']
                      : "";
    		var elts_cnt  = (typeof(elts.length) != 'undefined')
    				? elts.length
    				: 0;
    		
    		if (elts_cnt) {
    			for (var i = 0; i < elts_cnt; i++) {
    			elts[i].selectedIndex = cosa;
    			} // end for
    		} else {
    			elts.selectedIndex = cosa;
    		} // end if... else
    		
    	
    	}
    //-->
    </script>
    Assegna tutte le schede a: 
      <select name="cosa_selezionare" onChange="sel_tutti('sel',document.sel.cosa_selezionare.value);">
        <option value="" selected>Seleziona</option>
    	  	    <option value="1">Mauro</option>
    		    <option value="2">Giorgia</option>
    		    <option value="3">Michele</option>
    		    	    <option value="6">Maaaaauro</option>
    		    <option value="52">Giorgsdda</option>
    		    <option value="4">Michesaaaaale</option>
      </select>
      
      
      
      
    <table width="100%"  border="0">
     <tr>
    
        <td width="41%">
          <div align="center">
            <select name="utente[]">
    	      <option  selected>Seleziona</option>
    	  	    <option value="1">Mauro</option>
    		    <option value="2">Giorgia</option>
    		    <option value="3">Michele</option>
    		    <option value="6">Maaaaauro</option>
    		    <option value="52">Giorgsdda</option>
    		    <option value="4">Michesaaaaale</option>
            </select>
          </div></td>
        <td width="19%"><div align="center">Non assegnare </div></td>
      </tr>
     <tr>
        
        <td width="41%">
          <div align="center">
            <select name="utente[]">
    	      <option selected>Seleziona</option>
    	  	    <option value="1">Mauro</option>
    		    <option value="2">Giorgia</option>
    		    <option value="3">Michele</option>
    		    <option value="6">Maaaaauro</option>
    		    <option value="52">Giorgsdda</option>
    		    <option value="4">Michesaaaaale</option>
            </select>
          </div></td>
        <td width="19%"><div align="center">Non assegnare </div></td>
      </tr>
    </table> 
    </form>
    
    </body>
    Quindi, se provate a copiare questo codice così com'è potete verificare subito una cosa, che se io seleziono Mauro,Giorgia,Michele tutto funziona... se selezionato Maaaaauro mi seleziona Michesaaaale ... Questo perchè, nel ciclo for impostato nella funzione segue la variabile i che aumenta progressivamente.

    Premetto che non sono espertissimo di javascript, ma è possibile fare questa roba quì funzionante? Cioè, invece di fare un controllo su una variabile i fare un controllo sul VALORE... perchè se al posto dei numeri (nelle option delle select) ci fossero stati dei caratteri la funzione non avrebbe dato i risultati sperati.


    Spero di essere stato chiaro, è un po' complesso come problema, almeno per me. Sul forum non ho trovato nulla di simile.


    Grazie 1000,
    CIAUU

    :metallica
    Sosia di Rocco Siffredi cerca Lavoro

  2. #2
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649

    Re: selezionare in una sola volta più selezioni con gli stessi valori

    Originariamente inviato da Jackson
    se selezionato Maaaaauro mi seleziona Michesaaaale ... Questo perchè, nel ciclo for impostato nella funzione segue la variabile i che aumenta progressivamente.
    non è quello il motivo, la i nel ciclo è la variabile che ti permette di ciclare tra le select

    piuttosto, se il value non puoi usarlo come indice delle option (motivo per cui al momento non funziona) e se le select sono sicuramente tutte uguali, non passare il value dell' option selezionata
    (che tra l' altro andrebbe correttamente indicato non con
    document.sel.cosa_selezionare.value
    ma con
    document.sel.cosa_selezionare.options[document.sel.cosa_selezionare.selectedIndex].value
    )
    ma il selectedIndex

    onChange="sel_tutti('sel',this.selectedIndex);">

    altrimenti, se le select non sono tutte uguali, per ogni select sarà necessario ciclare su tutti i value delle singole option alla ricerca della prima corrispondenza (di value, di text, dipende da quello su cui puoi basarti) per determinare il corretto index a cui settare il selectedIndex

    ciao

  3. #3
    grazie Sembra funzionare!!

    Ciaooo
    Sosia di Rocco Siffredi cerca Lavoro

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.