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

    menu a tendina selezione unica

    Salve a tutti vi indico subito il problema: ho due select, la prima è una lista di marche che a seconda della scelta popola l'altra con i modelli corrispondenti. Le due select funzionano perfettamente. Il database attualmente è strutturato in maniera ordinata e cioè tutti i modelli che appartengono ad una stessa marca sono tutti vicini. Mi è capitato di dover inserire dei nuovi modelli di vetture e chiaramente l'ordine si è perso e ora la prima select con le marche presenta una stessa marca due volte. Il problema è il javascript conta una sola marca solo quando sono consequenziali ma quando sono sparse le aggiunge nella select anche diverse volte. Vorrei quindi che la select con le marche vedesse solo un valore di una stessa marca. Secondo voi è possibile o mi sono incartato nella spiegazione? Vi sarei grato se poteste aiutarmi e, se non sono stato chiaro, che me lo diceste.

    Vi posto il codice:
    questo l'ho messo in testa alla pagina prima del body

    codice:
    <script language="JavaScript">
    	var arg=new Array;
    	var arg2=new Array;
    	function ChangeSelect(form){
    		selezionato = form.selectone.selectedIndex;
    		arg.length = 0;
    		arg=new Array;
    		arg2.length = 0;
    		arg2=new Array;
    		switch ( selezionato ){
    <?
    $i=0;
    
    mysql_select_db($database_afgroup, $afgroup);
    $query_selezione="SELECT v.ID_vettura AS ID_model, v.marca AS brand, v.modello AS model, v.sub_modello AS sub_model FROM sr v";
    
    $selezione = mysql_query($query_selezione, $afgroup) or die(mysql_error());
    $row_selezione = mysql_fetch_assoc($selezione);
    $totalRows_selezione = mysql_num_rows($selezione);
    if (! $result=mysql_query($query_selezione)) {error_die("Si &egrave; verificato un'errore nel recupero dei dati dal database!");}
    while ($row = mysql_fetch_array($result)) {
    	if ($row["brand"] != $brand_precedente) {
    		$lista_brand[$i]=$row["brand"];
    		if ($m) {
    			echo "break;\n";
    		}
    		$m=1;
    		echo "case $i:\n";
    		$i++;
    		$j=0;
    	}
    	?>
    	arg[<? echo $j ?>]=new Option("<? echo $row["model"] ?> <? echo $row["sub_model"] ?>");
    	arg2[<? echo $j ?>]="<? echo $row["ID_model"] ?>";
    	<?
    	if ($i==1) {
    		$lista_modelli_ALFA[]=$row["model"];
    		$lista_modelli_ALFA_VALUE[]=$row["ID_model"];
    	}
    	$j++;
    	$brand_precedente=$row["brand"];
    }
    ?>
    	}
    	for(i=form.selecttwo.options.length-1;i>=0;i--){
    		form.selecttwo.options[i].value=null;
    		form.selecttwo.options[i] = null;
    	}
    	for(i=0;i<arg.length;i++){
    		form.selecttwo.options[i]=arg[i];
    		form.selecttwo.options[i].value=arg2[i];
    	}
    	form.selecttwo.selectedIndex=0;
    }
    </script>
    select marche

    codice:
    <select name="selectone" class="box" onChange='ChangeSelect(this.form)'>
                        <? for ($i=0; $i<sizeof($lista_brand); $i++) { ?>
                        <option><? echo $lista_brand[$i] ?></option>
                        <? } ?>
    select modelli

    codice:
    <select name="selecttwo" class="box">
                        <? for ($i=0; $i<sizeof($lista_modelli_ALFA); $i++) { ?>
                        <option value="<? echo $lista_modelli_ALFA_VALUE[$i] ?>"><? echo $lista_modelli_ALFA_VALUE[$i] ?></option>
                        <? } ?>
    Vi ringrazio in anticipo per l'aiuto che mi potreste dare.

  2. #2
    scusate volevo sapere se si è capita la domanda o se ci sono problemi per quanto riguarda la soluzione?

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.