Il codice è banalissimo. Nell'head richiamo prototype e scriptaculous da google con uno script.
Quindi gestisco il campo in cui voglio applicare l'auto compilazione con:
codice:
<input type="text" name="city" id="city" size="40" class="textboxR"/>
[img]/IMMAGINI/CLIPART/load.gif[/img]
<div id="suggerimenti_city" class="boxsuggerimenti"></div>
<script type="text/javascript">new Ajax.Autocompleter("city", "suggerimenti_city", "Registra_autocomplete.asp", {minChars: 3, indicator: 'load'});
</script>
Nella pagina Registra_autocomplete.asp, c'è la richiesta dei dati dal database in base al request.form("city"), quindi viene compilato un ciclo con tutti i dati trovati:
codice:
[*]<%=Citta%>
<span class="informal">, <%=Provincia%></span> (<%=rs("Sigla")%> ) -
<span class="informal"> <%=rs("Cap")%></span>
La classe "informal" fa si che il valore sia visibile nel div "suggerimenti_city" senza però essere inserito nel campo "city", quando cliccato.
Nella pagina di scriptaculous è presente questo esempio:
codice:
new Ajax.Autocompleter("autocomplete", "autocomplete_choices", "/url/on/server", {
afterUpdateElement : getSelectionId });
function getSelectionId(text, li) {
alert (li.id);
}
ma non sono riuscito a modificarlo per il mio uso: ho provato, ad esempio:
codice:
function getSelectionId(text, li) {
document.getElementById("mio_secondo_campo").value = document.getElementById.("cap");
}
dove "cap" dovrebbe essere il valore preso dalla pagina Registra_autocomplete.asp, dopo logicamente aver assegnato un id allo span, ma niente da fare....