Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 32

Discussione: Select Digitabile

  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    24

    Select Digitabile

    Salve a tutti, Dove lavoro mi è stato chiesto di realizzare su una pagina web una select(list/menù se preferite) digitabile ed auto completante cioè che man mano che si digita all'interno della select consiglia automaticamente la voce contenuta nella select che più si avvina a quello digitato.

    Non sò da che parte cominciare chi mi sà dare un consiglio? Su di alcuni siti ho visto già cose del genere quindi penso che in un modo o nell'altro è fatibile ma senza aiuto non credo di riuscirci quindi...AIUTO!!!!!!!!!!!! Aho poi se è una cosa impossibile da fare ditemelo e io rigetto la richiesta...

    Ciao e grazie.

    Carletto

  2. #2
    Utente di HTML.it L'avatar di Sgnafurz
    Registrato dal
    Mar 2003
    Messaggi
    2,182

    Re: Select Digitabile

    Originariamente inviato da AgainC78
    Salve a tutti, Dove lavoro mi è stato chiesto di realizzare su una pagina web una select(list/menù se preferite) digitabile ed auto completante cioè che man mano che si digita all'interno della select consiglia automaticamente la voce contenuta nella select che più si avvina a quello digitato.

    Non sò da che parte cominciare chi mi sà dare un consiglio? Su di alcuni siti ho visto già cose del genere quindi penso che in un modo o nell'altro è fatibile ma senza aiuto non credo di riuscirci quindi...AIUTO!!!!!!!!!!!! Aho poi se è una cosa impossibile da fare ditemelo e io rigetto la richiesta...

    Ciao e grazie.

    Carletto
    non mi risulta che l'elemento SELECT sia editabile, e se non aggiunto qualche attributo nuovo senza avvisare il W3C
    credo che la cosa non sia fattibile
    alla select puoi accedere digitando la lettera dell'iniziale della parola ricercata

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    24

    Re: Select digitabile

    Si lo sò che di suo non è editabile, magari giocando con lo stile e un pò di dhtml Come ho scritto, nel web mi è capitato di vedere qualcosa del genere...A ricordarsi dove...

  4. #4
    ciao Again.

    Avevo la tua stessa necesita' ma sfortunatamente non ho trovato niente in giro quindi e' da ieri che ci sto' lavorando per completarla. L'ho quasi finita.
    Appena e' termintata ti posto il codice ok ??

    ciao.

    per la cronaca.

    Il select che sto' sviluppando e' qusi interamente gestito da javascript con alcuni tocchi di stylesheet !

    ciao
    Nulla è impossibile. Il difficile è trovare la soluzione che renda l'impossibile possibile...
    http://www.eternaldream.it

  5. #5
    Utente di HTML.it L'avatar di Sgnafurz
    Registrato dal
    Mar 2003
    Messaggi
    2,182
    Originariamente inviato da alexdem24
    ciao Again.

    Avevo la tua stessa necesita' ma sfortunatamente non ho trovato niente in giro quindi e' da ieri che ci sto' lavorando per completarla. L'ho quasi finita.
    Appena e' termintata ti posto il codice ok ??

    ciao.

    per la cronaca.

    Il select che sto' sviluppando e' qusi interamente gestito da javascript con alcuni tocchi di stylesheet !

    ciao
    scusa ma l'oggetto che stai usando non è un select, lo stai proprio costruendo

  6. #6
    si infatti.
    io l'ho chiamato lo "pseudoselect".

    Un select costruito con un textbox + l'immagine del bottone sulla destra. Il tutto incluso in div ad albero e gestiti tramite javascript!

    Fara' esattamente quello che fa il completamento automatico di windows piu' altre cose.
    Nulla è impossibile. Il difficile è trovare la soluzione che renda l'impossibile possibile...
    http://www.eternaldream.it

  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    24
    Alexander sei gentilissimo...mi faresti prorpio un gran favore.
    Grazie e a Buon Rendere.

    Carletto

  8. #8
    Ehi ragazzi, vi avviso che il select e' finito.
    Questa versione e' quella base, quindi diciamo che al momento riprende le funzioni generali di un semplice select con le funzioni aggiuntive di completamento automatico.

    Il lavoro non e' ancora del tutto finito, ma per chi ha voglia di sperimentarlo e dirmi la sua opinione lo puo' fare copiando il codice html sottostante ed incollarlo su una classica pagina html.
    I css sono stati inseriti all'interno della pagina per semplificare la lettura del codice e darvi un esempio pratico con la semplice copia dell'html.

    Eccovi il codice html.

    codice:
    <script language="javascript"  type="text/javascript">
    	// Array che popola il Select.
    	var Items = new Array("campo1","campo2","campo3","campo4","domodossola","domenica","Danimarca","lama","lettiera","muschio","mucca","mangime","testo1","testosterone");
    	var timeofkeypressdown=0;	// Questa variabile registra quante volte e' stato premuto il tasto GIU' da tastiera e mi consente di cambiare stile nel tag TD
    	var pointer;
    	/*	
    	//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    	//  				QUESTA FUNZIONE NON E' ANCORA STATA COMPLETATA  	  						//
    	//		Essa avra' ha il compito di controllare tutti i vari aspetti del select quali la      		            //
    	//		selezione degli elementi in base alla pressione dei tasti SU e GIU', la chiusura del		//
    	//		select al cliccare del mouse fuori dall'area, la conferma della scelta alla pressione		//
    	//		del tasto Invio etc...															 																		//
    	//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////					
    	function Arrowmovement(evt,keypressed) {
    		var refrow;
    		var newHTML;
    		var key = (evt.which) ? evt.which : event.keyCode;
    		refrow=document.getElementById('photolibrarylist').rows[timeofkeypressdown];
    		 for (var i=0; i<Items.length; i++) {
    			 if ((key==40)&&((Items[i].toLowerCase()).indexOf(keypressed.toLowerCase())==0)){   // Sto' premendo il tasto GIU' da tastiera
    				if (refrow == undefined) {
    					return;
    				}else  {
    					newHTML="\t\t<td id="+(i+timeofkeypressdown)+" class=\"IN\" onClick=\"Selected("+(i+timeofkeypressdown)+");\">"+Items[(i+timeofkeypressdown)]+"</td>\n";
    					pointer=Items[(i-1)+timeofkeypressdown];
    				}
    				refrow.innerHTML=newHTML;
    				key=0;
    				timeofkeypressdown+=1;
    		 	}else if ((key==38)&&((Items[i].toLowerCase()).indexOf(keypressed.toLowerCase())==0)) {		// Sto' premendo il tasto SU da tastiera
    		 		//alert("pointer="+pointer+"\nItems="+Items[i]);
    		 		if (pointer==Items[i]) {
    			 		timeofkeypressdown-=1;
    			 		newHTML="\t\t<td id="+i+" class=\"IN\" onClick=\"Selected("+i+");\">"+Items[i]+"</td>\n";
    			 		document.getElementById('photolibrarylist').rows[timeofkeypressdown-1].innerHTML=newHTML;
    //				 		timeofkeypressdown-=1;
    			 		key=0;			 
    		 		}
    		 	}else if (key==13) {
    			 	//alert(document.getElementById('photolibrarylist').rows[timeofkeypressdown-2].innerHTML);
    				 if (document.getElementById('photolibrarylist').rows[timeofkeypressdown-2].innerHTML==Items[i]) {
    					 alert(Items[i]);
    					document.formcompanies.companies.value=Items[i];
    					document.getElementById("listcompanies").style.display="none";
    				}
    			}
    		}
    	}
    	//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    */
    	function Selected(cellid) {
    		timeofkeypressdown=0; 
    		for (var i=0; i<Items.length; i++) {
    			if (cellid==i) {
    				document.formcompanies.companies.value=Items[i];
    				document.getElementById("listcompanies").style.display="none";
    			}
    		}
    	}
    	
    	function ShowItem() {
    		if (document.getElementById("listcompanies").style.display=="none")
    			document.getElementById("listcompanies").style.display="block";
    		else
    			document.getElementById("listcompanies").style.display="none";
    	}
    	
    	function FindItem(value,evt) {
    		var event=evt;
    		var ref=document.getElementById('listcompanies');
    		var innerHTML="";
    		innerHTML="<table id=\"photolibrarylist\" class=\"photolibrarylist\" cellpadding=\"0\" cellspacing=\"0\">\n\t<tbody>\n";
    		for (var i=0; i<Items.length; i++) {
    			if ((Items[i].toLowerCase()).indexOf(value.toLowerCase())==0) {
    				innerHTML=innerHTML+"\t\t<tr><td id="+i+" class=\"OUT\" onmouseover=\"this.className=\'IN\';\" onmouseout=\"this.className=\'OUT\';\" onClick=\"Selected("+i+");\">"+Items[i]+"</td></tr>\n";
    				//alert(ref);
    			}
    		}
    		innerHTML+="\t</tbody>\n</table>\n";
    		ref.innerHTML=innerHTML;
    		//Arrowmovement(event,value);
    		document.getElementById("listcompanies").style.display="block";
    	}
    </script>
    <html>
    <head>
    <STYLE type="text/css">
    	table.photolibrarylist { width:100%; padding-left:0px }
    	table.photolibrarylist td.IN { background-color:#316ac5; cursor:default; color:white }
    	table.photolibrarylist td.OUT{ background-color:transparent; color:black }
    	div.imageselect { position:relative; margin-left:183px; margin-top:-21px }
    	div.lcompanies { background-color:white; border:1px solid black; padding-left:2px; width:200px; height:150px; margin-top:2px; margin-left:15px; overflow:auto;display:none }
    </style>
    </head>
    <body>
    	<div style="position:absolute; margin-top:46px">
    	<form name="formcompanies" method="post">
    	<div style="position:relative; padding-left:15px">
    	<input type="text" name="companies" style="width:200px" value="all companies" onclick="if(this.value=='all companies') this.value='';" onkeyup="FindItem(this.value,event);">
    	<div class="imageselect">[img]arrow_select.jpg[/img]</div>
    	</div>
    	<div id="listcompanies" class="lcompanies">
    	<table id="photolibrarylist" class="photolibrarylist" cellpadding="0" cellspacing="0">
    	
    <!--	
    	La parte di codice scritta sotto, era stata originariamente scritta in php per il completamento dei contenuti, ma l'ho modificata in codice HTML
    	per rendere piu' semplice la comprensione dello stesso e per potervi dare un esempio pratico con un semplice copia ed incolla dell'interno HTML
    -->
    
    	<tr><td id=0 class="OUT" onmouseover="this.className='IN';" onmouseout="this.className='OUT';" onClick="Selected(0);">campo1</td></tr>
    	<tr><td id=1 class="OUT" onmouseover="this.className='IN';" onmouseout="this.className='OUT';" onClick="Selected(1);">campo2</td></tr>
    	<tr><td id=2 class="OUT" onmouseover="this.className='IN';" onmouseout="this.className='OUT';" onClick="Selected(2);">campo3</td></tr>
    	<tr><td id=3 class="OUT" onmouseover="this.className='IN';" onmouseout="this.className='OUT';" onClick="Selected(3);">campo4</td></tr>
    	<tr><td id=4 class="OUT" onmouseover="this.className='IN';" onmouseout="this.className='OUT';" onClick="Selected(4);">domodossola</td></tr>
    	<tr><td id=5 class="OUT" onmouseover="this.className='IN';" onmouseout="this.className='OUT';" onClick="Selected(5);">domenica</td></tr>
    	<tr><td id=6 class="OUT" onmouseover="this.className='IN';" onmouseout="this.className='OUT';" onClick="Selected(6);">Danimarca</td></tr>
    	<tr><td id=7 class="OUT" onmouseover="this.className='IN';" onmouseout="this.className='OUT';" onClick="Selected(7);">lama</td></tr>
    	<tr><td id=8 class="OUT" onmouseover="this.className='IN';" onmouseout="this.className='OUT';" onClick="Selected(8);">lettiera</td></tr>
    	<tr><td id=9 class="OUT" onmouseover="this.className='IN';" onmouseout="this.className='OUT';" onClick="Selected(9);">muschio</td></tr>
    	<tr><td id=10 class="OUT" onmouseover="this.className='IN';" onmouseout="this.className='OUT';" onClick="Selected(10);">mucca</td></tr>
    	<tr><td id=11 class="OUT" onmouseover="this.className='IN';" onmouseout="this.className='OUT';" onClick="Selected(11);">mangime</td></tr>
    	<tr><td id=12 class="OUT" onmouseover="this.className='IN';" onmouseout="this.className='OUT';" onClick="Selected(12);">testo1</td></tr>
    	<tr><td id=13 class="OUT" onmouseover="this.className='IN';" onmouseout="this.className='OUT';" onClick="Selected(13);">testosterone</td></tr>
    	
    <!--
    
    	Qui' di seguito invece vi inserisco il ciclo in php che permette di inserire i contenuti dell'array all'interno del select		
    	<?
    	for($i=0;$i<count($array_contenente_i_campi);$i++){
    		print "<tr><td id={$i} class=\"OUT\" onmouseover=\"this.className='IN';\" onmouseout=\"this.className='OUT';\" onClick=\"Selected({$i});\">\n";
    		print "{$array_contenente_i_campi[$i]["Nome_campo"]}\n";
    		print "</td></tr>\n";
    	}
    	?>
    -->
    	</table>
    	
    	</div>
    	</form>
    	</div>
    </body>
    </html>
    Consigli ed opinioni sono bene accette.

    ciao
    Nulla è impossibile. Il difficile è trovare la soluzione che renda l'impossibile possibile...
    http://www.eternaldream.it

  9. #9
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    24
    Ragazzo mio abbiamo un feeling inquietante...neache finito di mandarti un mes privato e subito m'è arrivata la notifica del tu mess nel forum...Grandissimo lo testo subito e ti faccio sapere

  10. #10
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    24
    Perfetto funziona benissimo l'unica cosa che ho fatto è stato modificare lo stile della tabella che simula la lista delle option aggiungendo position: absolute; z-index: 1; per non farla apparire sovrapposta alla tabella generale senza modificarla. stavo guardando la funzione per la gestione delle fracce e del tasto invio...a che punto eri arrivato? consa manca da gestire così magari provo a gestirlo da solo senza approfittare troppo di te.

    Ciao Carletto

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.