Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    310

    [javascript] - completamento automatico textbox

    Ciao a tutti,
    come posso fare il completamento automatico su una textbox in modo che mentre scrivo un nome mi suggerisce (senza menu a tendina), nella stessa textbox il primo nome possibile (elenco preso da DB)?
    Ho trovato uno script in javascript, funziona perfettamente, ma il problema è che oltre alla textbox è necessario inserire anche un menu select dove sono precaricati i nomi (presi da DB).

    Qualcuno di voi ha qualche script che può fare al caso mio?
    Grazie mille

  2. #2
    devi utilizzare un linguaggio dinamico
    prude il dito, lui sdraiato
    ha giocato a guardie e ladri col ladro sbagliato

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    310
    E' questo mi sembra scontato.
    Le pagine sono in php la funzione che voglio implementare probabilmente deve essere fatta client-side (javascript), ma come non lo so.
    E' questo che sto cercando come un matto.

  4. #4
    Originariamente inviato da robyd
    E' questo mi sembra scontato.
    Le pagine sono in php la funzione che voglio implementare probabilmente deve essere fatta client-side (javascript), ma come non lo so.
    E' questo che sto cercando come un matto.
    con php leggi il campo del db che ti interessa e stampi delle variabili js

    codice:
    echo "<script>"
    echo "var arr = new Array();"
    
    $x=0
    do until rs.eof
       $descr = rs[...]
       echo "arr[".$x."]='".$descr
       ....
    echo "</script>"

    all'evento onchange della textbox chiami una funzione che cicla l'array confrontando il valore dell'array con quello della textbox
    prude il dito, lui sdraiato
    ha giocato a guardie e ladri col ladro sbagliato

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    310
    Grazie mille provero questa soluzione

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    310
    Saresti cosi gentile da darmi una mano a fare questa funzione?
    Non ci riesco proprio.

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    310
    Ecco quello che sono riuscito a fare solo che mi dice 'arr' non è definito (nella posizione indicata nella freccia).


    <?
    $query_ris ="select * from tbl_anagrafica where eliminato<>1 order by titolo asc ";
    $result = mysql_query($query_ris);

    echo "<script>";
    echo "var arr = new Array();";

    $x=0;
    while ($array_vet = mysql_fetch_array($result)) {
    $titolo=$array_vet['titolo'];
    echo "arr[".$x."]='".$titolo;
    $x=$x+1;
    }
    echo "</script>";

    ?>

    <script>

    function completa(r){

    // Prendo il valore che ho appena digitato
    parola=document.form1.input1.value

    lunghezza=parola.length;
    check=0
    for(e=0;e<=r;e++){
    --->> valore=arr[e]
    if (parola==valore.substr(0,lunghezza)){
    e=r+1;
    trovato=valore
    check=1
    }
    }
    if (check==1){
    document.form1.input1.value=trovato
    }

    }
    </script>



    <FORM name="form1">
    <INPUT TYPE="text" NAME="input1" VALUE="" onkeyup="completa(<?=$x-1?>)">
    </FORM>

  8. #8
    cos'è r ?

    devi ciclare l'array da 0 alla sua lunghezza:
    arr.lenght
    prude il dito, lui sdraiato
    ha giocato a guardie e ladri col ladro sbagliato

  9. #9
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    310
    r è la lunghezza dell'array.
    Ora non mi da più quell'errore. Il problema è un'altro. Quando digito una lettera mi richiama la funzione fa il confronto e se trova una parola che inizia con quella lettera la inserisce nella textbox, impedendomi di correggere la parola (per esempio eliminando con il tasto <-- ), dato che ad ogni lettera mi fa il confronto.
    Sarebbe utili non inserire la parola intera nella textbox ma la parola con sfondo blu (come compare quando rinomino un file), cosi da eliminarla facilmente.
    Non so se sono stato chiaro.
    Ti invio un esempio simile.

    http://www.mattkruse.com/javascript/autocomplete/


    il nuovo codice che ho inserito :

    <?
    $query_ris ="select * from tbl_clienti where eliminato<>1 order by titolo asc ";
    $result = mysql_query($query_ris);

    echo "<script>";
    echo "var arr = new Array();";

    $x=0;
    while ($array_vet = mysql_fetch_array($result)) {
    $titolo=$array_vet['titolo'];
    echo "arr[".$x."]='".$titolo."'";
    echo "\n";
    $x=$x+1;
    }
    echo "</script>";
    ?>
    <script>
    function completa(r){

    parola=document.form1.input1.value
    lunghezza=parola.length;
    check=0
    for(e=0;e<=r;e++){
    valore=arr[e]
    if (parola==valore.substr(0,lunghezza)){
    e=r+1;
    trovato=valore
    check=1
    }

    }
    if (check==1){
    document.form1.input1.value=trovato
    }


    }
    </script>
    </HEAD>

    <body>
    <FORM name="form1">

    <INPUT TYPE="text" NAME="input1" VALUE="" onkeyup="completa(<?=$x-1?>)">

    </FORM>

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.