eliminare un <option> da una <select>

briglia23

Nuovo Utente
24 Giu 2008
28
0
0
Come da oggetto vorrei fare una funzione javascript che si comporti nel seguente modo:

Ho 3 <select> vorrei che selezionado una <option> nella prima, questa venisse cancellata nelle altre 2, passando alle seconda <select>, selezionando una <option> anche in questa, essa venisse cancellata nella terza.

Grazie a tutti.
 

lukeonweb

Utente Attivo
5 Mar 2003
5.177
10
38
43
Napoli
www.lucaruggiero.it
Immagino che i dati tu li estragga da un database per selezionare le select, giusto?

Se hai questa esigenza, secondo me, non gestisci bene i dati.

Mi spieghi la struttura dei dati che visualizzi nelle select? Magari la soluzione che hai in mente è by-passabile... ammesso che non ti interessi semplicemente il virtuosismo :)
 

briglia23

Nuovo Utente
24 Giu 2008
28
0
0
In effetti i dati li estraggo da un db, ma non posso fare diversamente da come ho fatto in quanto (usando jsp) uso un solo metodo per tutte le select per rendere il codice + leggero.
In realtà ci sono "quasi riuscito".
Dico quasi perchè la soluzione che ho trovato preenta un baco.
Te la posto nel caso ci volesi dare una controllata.

<html>
<head>
<title>Mutua esclusione</title>
<script type="text/javascript">
function cancellaOption(idSelect,valore,idRem01,idRem02){
alert(idSelect);
alert(idRem01);
alert(idRem02);
option_da_cancellare = document.getElementById(idSelect).selectedIndex;
alert(option_da_cancellare);
if(option_da_cancellare >=0){
document.getElementById(idRem01).options[option_da_cancellare]=null;
document.getElementById(idRem02).options[option_da_cancellare]=null;
}
}

</script>
</head>
<body>
<!-- <select id="A" onChange="javascript:rimuovivoce();">-->
<select id="A" onChange="javascript:cancellaOption(this.id,this.value,'B','C');">
<option name="data" value="data">DATA ODIERNA</option>

<option name="datiSoc" value="datiSoc">DATI SOCIETARI</option>
<option name="campiFissi" value="campiFissi">CAMPI FISSI</option>
</select>

<select id="B" onChange="javascript:cancellaOption(this.id,this.value,'A','C');">
<option name="data" value="data">DATA ODIERNA</option>
<option name="datiSoc" value="datiSoc">DATI SOCIETARI</option>
<option name="campiFissi" value="campiFissi">CAMPI FISSI</option>

</select>

<select id="C" onChange="javascript:cancellaOption(this.id,this.value,'A','B');">
<option name="data" value="data">DATA ODIERNA</option>
<option name="datiSoc" value="datiSoc">DATI SOCIETARI</option>
<option name="campiFissi" value="campiFissi">CAMPI FISSI</option>
</select>

</body>

</html>


Grazie
 

briglia23

Nuovo Utente
24 Giu 2008
28
0
0
con questa soluzione ho il problema che gli indici vengono aggiornati.
Esempio:

se dalla seconda select elimino il secondo option (id=1) questo viene correttamente cancellato, il problema è che nel momento della eliminazione gli indici delle altre select si aggiornano ed invece che essere 0 e 2 diventano 0-1.
C'è un modo x far sì che, una volta eliminato un option gli indici delle altre select non vengano modificati?
 

briglia23

Nuovo Utente
24 Giu 2008
28
0
0
<html>
<head>
<title>Mutua esclusione</title>
<script type="text/javascript">
function cancellaOption(idSelect,valore,idRem01,idRem02){
/*alert(idSelect);*/
/*alert(valore)*/
/*alert(idRem01);*/
/*alert(idRem02);*/
mySelect = document.getElementById(idSelect).id;
/*alert(mySelect);*/
option_da_cancellare = document.getElementById(mySelect).options[valore].value;
/*alert(option_da_cancellare);*/
if(option_da_cancellare != ""){
opt01 = document.getElementById(idRem01).options[option_da_cancellare].id;
opt02 = document.getElementById(idRem02).options[option_da_cancellare].id;
/*alert(opt01);*/
/*alert(opt02);*/
document.getElementById(idRem01).options[opt01]=null;
document.getElementById(idRem02).options[opt02]=null;
}
}

</script>
</head>
<body>
<select id="A" onChange="javascript:cancellaOption(this.id,this.value,'B','C');">
<option id="0" name="data" value="data">DATA ODIERNA</option>
<option id="1" name="datiSoc" value="datiSoc">DATI SOCIETARI</option>

<option id="2" name="campiFissi" value="campiFissi">CAMPI FISSI</option>
</select>

<select id="B" onChange="javascript:cancellaOption(this.id,this.value,'A','C');">
<option id="0" name="data" value="data">DATA ODIERNA</option>
<option id="1" name="datiSoc" value="datiSoc">DATI SOCIETARI</option>
<option id="2" name="campiFissi" value="campiFissi">CAMPI FISSI</option>
</select>


<select id="C" onChange="javascript:cancellaOption(this.id,this.value,'A','B');">
<option id="0" name="data" value="data">DATA ODIERNA</option>
<option id="1" name="datiSoc" value="datiSoc">DATI SOCIETARI</option>
<option id="2" name="campiFissi" value="campiFissi">CAMPI FISSI</option>
</select>

</body>
</html>
 

Scofield

Nuovo Utente
13 Ago 2008
3
0
0
Grazie 1000 per avermi risposto, stavo cercando di adattarlo al mio sito, ma non ci sono riuscito perchè non sono molto pratico di JS, ti posto il codice interessato così se ti va mi dai una mano:

PHP:
   for($i=1;$i<=32;$i++){
 echo" <tr align=\"center\"><td><span class=\"txtnum\">$i-</span></td><td><select id=\"$i\" name=\"tabellone _giocatore_1_$i\" onchange=\"aggiornasel(this.id,this.value);\"  >"; echo"<option value=0> ";
  $query_giocatori1="SELECT * FROM iscrizioni
			    WHERE iscrizioni_torneo='$torneo' AND iscrizioni_U10M=1 AND iscrizioni_sing_U=1";}
 $res_query_giocatori1 = mysql_query($query_giocatori1) or die (mysql_error()); 
 while($row_giocatori1=mysql_fetch_array($res_query_giocatori1)){
					$giocatori1=$row_giocatori1['iscrizioni_giocatore'];
				    $query_giocatori2="SELECT * FROM user
			                          WHERE user_id='$giocatori1' AND user_class_attuale >='$tabellone_class_iniz' AND user_class_attuale <='$tabellone_class_finale'";
				   $res_query_giocatori2 = mysql_query($query_giocatori2) or die (mysql_error()); 	
				   $row_giocatori2=mysql_fetch_array($res_query_giocatori2);
				   $cognome=$row_giocatori2['user_cognome'];
				     $nome=$row_giocatori2['user_nome'];
					 if($row_giocatori2){
					
				  echo"<option value=$giocatori1>$cognome $nome[0].";
				  }
				               }echo"</tr></select>";
							   }echo"</table> ";	
		
					           }echo"</td>";
In sostanza sono 32 select (generato con un ciclo for) una sotto l'altra il cui id varia al variare della variabile $i del ciclo for,ho provato a modificare il tuo codice così ma non va!
Codice:
function aggiornasel(idSelect,valore){
/*alert(idSelect);*/
/*alert(valore)*/
/*alert(idRem01);*/
/*alert(idRem02);*/
mySelect = document.getElementById(idSelect).id;
alert(mySelect);
option_da_cancellare = document.getElementById(mySelect).options[document.getElementById(idSelect).selectedIndex].value;
alert(option_da_cancellare);
if(option_da_cancellare != ""){
 
   for(i=1;i<=32;i++){
opt01 = document.getElementById(i).options[option_da_cancellare].value;

alert(opt01);

document.getElementById(i).options.value[opt01]=null;
}
}
}
 
Ultima modifica:
Discussioni simili
Autore Titolo Forum Risposte Data
M eliminare padding logo sito HTML e CSS 2
A eliminare caratteri speciali mettendo uno spazio PHP 0
A eliminare caratteri diacritici con codice ascii PHP 4
MarcoGrazia Eliminare in automatico i caratteri spuri all'inizio e alla fine di una stringa Snippet PHP 0
L Eliminare estensione .html HTML e CSS 9
L [RISOLTO] Eliminare una discussione creata PHP 3
S Eliminare spazio iniziale PHP 2
S [PHP] Eliminare doppioni array e rinumerare le posizioni PHP 2
maxnegri Eliminare url index.php con variabili e reindirizzare alla home del sito PHP 7
D [ASP] Eliminare gli zeri che nn servono Classic ASP 1
K Come eliminare attributi regex per validazione con javascript Javascript 0
maxnegri [PHP] Eliminare risultati duplicati da ciclo foreach ottenuti da una select php mysqli PHP 18
P [HTML] Eliminare doppio menu in wordpress WordPress 2
P [WordPress] Eliminare scritta Categories da post WordPress 4
C [PHP] eliminare elemento da un array multidimensionale PHP 9
L Mi trovo nell'impossibilità di eliminare un record nella tabella Database 1
A [WordPress] Eliminare riga codice HTML WordPress 6
loois come eliminare una discussione fata in questo forum ? Discussioni Varie 1
trattorino [PHP] Eliminare piu frasi PHP 1
C [PHP] RISOLTO - Eliminare elementi duplicati da array multidimensionale PHP 1
L [HTML] versione mobile eliminare stile menu da nav HTML e CSS 0
T Come eliminare canonical url da blogger SEO e Posizionamento 0
dany81 [Photoshop] Eliminare più sfondo possibile... Photoshop 3
Monital [PHP] Eliminare la Barra di caricamento file alla fine dell'esecuzione PHP 11
asevenx [PHP] Eliminare record automaticamente dopo una certa data PHP 12
L Eliminare suono da iframe HTML e CSS 3
G Eliminare scrollbar laterale di visuallightbox jQuery 0
H Eliminare div creato da javascript Javascript 1
9 eliminare righe di una tabella con form html PHP 6
M Eliminare un cookie PHP 1
elpirata Eliminare dati selezionati da una form di select PHP 6
Marco_88 Eliminare una colonna da una LEFT JOIN MySQL 4
A come eliminare i suggerimenti della barra degli indirizzi su google chrome? Windows e Software 3
M Eliminare immagini da directory / *dal database fatto! PHP 2
K eliminare il carriage return Javascript 4
S Problema nell'eliminare un'immagine PHP 2
felino Eliminare stringa compresa tra due tags PHP 4
Creatt Eliminare macchine in centos Linux e Software 2
filippino Eliminare lo sfondo di una foto Photoshop 1
D [VB.NET] Eliminare Cartella e sottocartelle TRAMITE FTP .NET Framework 1
D Eliminare voce da campo db Classic ASP 5
filippino Eliminare le barre scorrimento HTML e CSS 1
A come eliminare Awesomehp Sicurezza e Virus 1
L eliminare un prodotto dal carrello tramite l'id della sessione PHP 1
felino Array: eliminare gli elementi che soddisfano una condizione PHP 5
A Eliminare bordo blu al click di un'immagine mappata HTML e CSS 3
L Eliminare Tag in runtime... jQuery 1
D Eliminare elementi da pagina html tramite pulsante HTML e CSS 7
8 Eliminare weebly free site HTML e CSS 3
M Eliminare Grub e ripristinare l'avvio normale di Windows Windows e Software 0

Discussioni simili