Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente bannato
    Registrato dal
    Jan 2004
    Messaggi
    110

    [JS] completamento automatico textbox

    salve...

    qualcuno sa dirmi come fare o indicarmi uno script per il completamento automatico della digitazione? i dati devono essere presi da database mysql.

    ho cercato nel forum e in google ma non ho trovato nulla...

    grazie mille...

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    IL database sta sul server, il JS sul client.
    Non e` quindi possibile fare quello che chiedi (a meno di non copiare tutto il database sul client).
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    Ciao a tutti,

    simulare l'autocompletamento in javascript non è così semplice... con IE ho fatto questo (per altri browser non ne ho idea)
    codice:
    <html>
    <head>
    <title>Autocompletamento</title>
    <style type="text/css">
    </style>
    <script type="text/javascript">
    var arr = new Array(); 
    arr[arr.length] = "bacco";
    arr[arr.length] = "bacetto";
    arr[arr.length] = "bacino";
    arr[arr.length] = "paperina";
    arr[arr.length] = "paperino";
    arr[arr.length] = "pippo"; 
    arr[arr.length] = "pluto"; 
    arr[arr.length] = "qua"; 
    arr[arr.length] = "qui"; 
    arr[arr.length] = "quo"; 
    
    var selezione=false
    
    function AutoRiempimento(objCampo){ 
    	var stringa = objCampo.value;
    	if (stringa.length > 0){
    		if(event.keyCode==8 && selezione){
    			objCampo.value=stringa.substr(0,stringa.length-1)
    			stringa = objCampo.value
    		}
    
    		var selectionStart=stringa.length
    		for (i=0; i<arr.length; i++){
    			if (arr[i].substr(0, stringa.length) == stringa){
    				objCampo.value = arr[i];
    				var selectionEnd=objCampo.value.length
    				if (objCampo.setSelectionRange) {
    					objCampo.focus();
    					objCampo.setSelectionRange(selectionStart, selectionEnd);
    				}
    				else if (objCampo.createTextRange) {
    					var range = objCampo.createTextRange();
    					range.collapse(true);
    					range.moveEnd('character', selectionEnd);
    					range.moveStart('character', selectionStart);
    					range.select();
    				}
    			break;
    			} 
    		}
    	}
    } 
    </script>
    </head>
    <body>
    <form name="NomeForm">
    <input type="text" name="sottotitolo" onkeydown="selezione=(document.selection.type!='None')" onkeyup="AutoRiempimento(this)" autocomplete="off">
    </form>
    </body>
    </html>
    ovviamente come dice Mich_ i valori devono essere tutti nel client... se ce ne sono troppi diventerebbe pesante
    Per trasferire i valori da MySQL al client dipende dalla tecnologia latoserver che usi

  4. #4
    Utente bannato
    Registrato dal
    Jan 2004
    Messaggi
    110
    Originariamente inviato da willybit

    ...

    ovviamente come dice Mich_ i valori devono essere tutti nel client... se ce ne sono troppi diventerebbe pesante
    Per trasferire i valori da MySQL al client dipende dalla tecnologia latoserver che usi

    grazie infinite per le risposte...

    grazie per lo script, mi sarà sicuramente utile in caso di valori 'fissi' da completare.

    in effetti con php potrei fare il trasferimento da server a client per poi memorizzare nell'array utilizzato da willybit (credo sia questo che intendete)... a questo punto mi chiedo se potete quantificare il '... se ce ne sono troppi ...'. sapreste darmi un totale (molto) approssimativo fino al quale è possibile fare questa operazione senza appesantire in modo rilevante? 50? 100? 1000?

    grazie e ciao...

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Ovviamente non possiamo rispondere con delle cifre.

    Piu` che la quantita` di valori da passare, quello che conta e` il peso della pagina (cioe` quanti KB occupa la pagina):

    Fermo restando che c'e` un limite (teorico) ad ogni singolo file (che pero` le reti attuali non verificano - non ricordo quanto sia), se devi mettere la pagina in una rete pubblica e deve venir vista da persone non particolarmente interessate, calcola di non superare i 5 secondi di tempo di scaricamento con un modem a 56 Kbit/sec, quindi 25 Kbyte.

    Pero` puoi usare dei trucchi, tipo scaricare il database alla fine della pagina, facendo attendere non la visualizzazione della pagina ma l'utilizzo degli script e robe simili.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  6. #6
    Utente bannato
    Registrato dal
    Jan 2004
    Messaggi
    110

    ...

    Originariamente inviato da Mich_
    Pero` puoi usare dei trucchi, tipo scaricare il database alla fine della pagina, facendo attendere non la visualizzazione della pagina ma l'utilizzo degli script e robe simili.
    ciò che dici è davvero interessante.

    abbi pazienza ma la fagianaggine impera... che intendi con 'scaricare il database...'? forse 'caricare' i valori del database nella pagina html?

    grazie...

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Io per "scaricare" intendo la traduzione di download, mentre upload lo traduco "caricare".

    Quello che intendevo e` trasferire il DB al client non all'inizio della pagina (come sarebbe logico/piu` usato con i JS), ma alla fine.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  8. #8
    Utente bannato
    Registrato dal
    Jan 2004
    Messaggi
    110

    ...

    capito... grazie davvero.

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.