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

    Autocompletamento nei Form e campi moduli con PHP+MySQL

    Ciao,
    mi chiedevo come poter introdurre nei form (campi moduli) un sistema di autocompletamento dei campi, tipo quello che si utilizza sul sito stesso http://uk.php.net/search.php dove inserendo qualche lettera nel campo "search for:" si genera un elenco di parole che iniziano con quello che si è digitato.

    Vorrei poterlo fare tramite php e database mysql ... logicamente credo si tratti di un qualcosa in javascript, ma non riesco a trovare una guida o un qualcosa che mi spieghi come fare esattamente.

    Grazie in anticipo

  2. #2
    Utente di HTML.it L'avatar di *Ray*
    Registrato dal
    Oct 2000
    Messaggi
    495
    Ciao Manuel

    Quello che chiedi e' una cosa poco inerente PHP e fortemente inerente javascript. Non e' una cosa semplicissima da implementare se non l'hai mai fatto: ti do' i paletti entro i quali muoverti. Per fare cio' che chiedi e' necessario utilizzare cio' che oggi va sotto il nome tanto di moda di "AJAX". Sostanzialmente si tratta di:

    A) Mentre l'utente digita, provvedere ad inoltrare una richiesta HTTP asincrona verso il server inviando il testo fino a quel momento digitato, utilizzando l'oggetto javascript XMLHttpRequest. Questo oggetto permette di mandare una richiesta HTTP in javascript verso il dominio della pagina nella quale ti trovi; normalmente manderai tale richiesta a una pagina opportuna di tua scelta che provveda ad effettuare delle elaborazioni necessarie e a restituirne i risultati in qualche formato.

    B) Decidere un formato per la risposta dello script in questione: normalmente la cosa migliore e' XML oppure un formato testuale semplice, in caso di risultati pochi campi.

    C) Implementare in javascript un parser della risposta: in caso di XML hai gia' tutto pronto, mentre per gli altri casi stara' a te implementare cio' che c'e' da implementare per capire la risposta.

    D) Via manipolazione del DOM, dovrai visualizzare in qualche modo i dati restituiti o una loro interpretazione.

    La tecnica non e' semplicissima perche' richiede la conoscenza di varie teniche: un minimo di HTTP, i problemi dell'oggetto XMLHttpRequest, quasi sempre si passa via XML e in ogni caso bisogna avere una base discreta per sapere come manipolare il DOM, altrimenti non sai come visualizzare il feedback verso l'utente. Peraltro, i singoli componenti sono piuttosto semplici da imparare a usare.

    Per quanto riguarda XMLHttpRequest, ci sono fin troppi tutorial in giro: scegline uno a tuo piacimento. L'unico consiglio che mi sento di darti e' di implementare il tutto utilizzando dei timeout piuttosto che un onkeyup/onkeydown semplice, in quanto e' molto facile causare un flooding di richieste. Siccome ad ogni richiesta spesso corrisponde una query SQL piu' o meno complessa, e' consigliabile evitare di fare partire la query in questione troppo spesso. Il caso tipico e' quello in cui l'utente tiene premuto un tasto "per provare", e il server viene bombardato di richieste. Se invece sei scaltro a sufficienza e metti un timeout che fa partire la richiesta al massimo ogni 300ms, 500ms o un valore a tua scelta, riesci a contenere il carico del server entro limiti ragionevoli e noti.

  3. #3
    Gentilissimo,
    grazie

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.