Visualizzazione risultati 1 fino 2 di 2

Discussione: Ricerca in menù a tendina

  1. #1
    Guest

    Unhappy Ricerca in menù a tendina

    Buona Sera ragazzi,
    seguo i votri forum da tanto, ma è la prima volta che scrivo!

    Mi servirebbe una mano:
    questa è la parte html:
    Codice HTML:
    <tr>
    	<th align='left' valign="middle" width='300'>
    		<label>Settori di Attivit&agrave; *</label>
    	</th>
    	<th align='left' width='500'>
    		<table>
    			<tr>
    				<th>
    	                <textarea name='settore' id='settore' cols='40' rows='4'><?php echo $settore; ?></textarea>
    				</th>
    				<th align="center">
    					<select id='settore_attivita2' name='settore_attivita2[]'>
    					<option value='' selected="selected">---</option>
    					<?php for ($i = 1; $i <= count($lista_sett_att); $i++){?>
    					<option value='<?php echo $lista_sett_att[$i];?>'><?php echo $lista_sett_att[$i];?></option>
    					<?php }?>
    					</select>
    					<input type="button" value="Inserisci" onclick="document.getElementById('settore_attivita2').value=''; document.getElementById('settore').value = inserimento_settore(document.getElementById('settore_attivita').value);"><br />
    					<input id='settore_attivita' name='settore_attivita' maxlength='255' type='text'/><br />
    				</th>
    			</tr>
    		</table>
    		<h5>* = se fornisci pi&ugrave; Settori di Attivit&agrave; separali con una virgola</h5><br />
    	</th>
    </tr>
    e questa è la parte in JavaScript:
    Codice:
    function inserimento_settore(stringa)
    {
    	var lista_sett_att = new array ("Calcio", "Basket", "Volley");
    	var indice=0;
    	var prova=-1;
    	var vettore='';
    
    	for (var i=0; i<= lista_sett_att.length -1; i++)
    	{
    		vettore=lista_sett_att[i];
    		prova=vettore.indexOf(stringa);
    		if (prova>-1)
    			indice = i;
    	}
    	
    	if(indice!=0)
    		document.getElementById('settore_attivita2').value = lista_sett_att[indice];
    
    	if(document.getElementById('settore_attivita2').value!='')
    	{
    		document.getElementById('settore').value = document.getElementById('settore').value + document.getElementById('settore_attivita2').value + ', ';
    		document.getElementById('settore_attivita').value='';
    		return document.getElementById('settore').value;
    	}
    	return document.getElementById('settore').value + '';		
    }
    in breve dovrei riempire la mia textarea tramite il menù a tendina, facendo una semplice richiesta con il campo input, e con il button inserisco man a mano le parole.
    Se inserisco la parola esatta me lo fa, se inserisco una parola che non c'è nel menù non mi inserisce nulla, ma se metto un pezzetto di parola, per esempio "Bask", vorrei che mi inserisse la parola "Basket" nella textarea.

    C'è qualcuno che saprebbe aiutarmi per favore?!

  2. #2
    L'avatar di saitfainder
    saitfainder non è connesso Sëniör Stäff
    Data registrazione
    06-12-2002
    Residenza
    Torino
    Messaggi
    8,715

    Predefinito

    Occhio che la <select> non ha una proprietà "value" come <input type="text">, ma ha una proprietà "selectedIndex" che indica l'elemento attualmente selezionato e con cui puoi impostare quale visualizzare. Usando "selectedIndex" puoi ricavare l'elemento della proprietà "options" attualmente selezionato. Oppure scorrendo "options" hai a disposizione tutti gli elementi della <select> e quindi puoi cercare quello che ti interessa (perché ogni <option> ha una proprietà "value"). Se guardi qui è spiegato più nel dettaglio.

    Inoltre attento al tuo ciclo. "indice" lo poni a zero e poi lo aggiorni quando trovi un elemento, ma il primo elemento ha "i"=0 e quindi non verrebbe mai trovato. Devi inizializzare "indice" con -1 o, se preferisci, con "null".


    «È una mia peculiarità distorcere la verità e inventarne di nuove.»
    «I tuoi orientamenti hanno su di me un effetto prossimo allo zero.»


Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •