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

    PHP + AJAX Completamento automatico

    Salve, seguendo un tutorial sul web sono riuscito ad ottenere il completamento automatico di un campo TEXT, ma solo dopo l'invio... Io invece voglio ottenerlo man mano che si scrive la parola. Uso "onKeyUp()" ma non mi funziona... Se provo la pagina su IE7, dopo aver immesso il primo tasto, la pagina diventa bianca. Come mai?
    Vi allego il testo del file .php:
    Codice PHP:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
    <html>
        <head>
            <script type="text/javascript" src="ajax.js"></script>        
        </head>
    <body>
    <div id="risultati">
        Ciao
        <form name="mia_form"> 
            Cerca un nome:

            <input name="nome" type="text" onKeyUp="Richiesta(this.value)"<?php
        $nomi
    [0] = "Alessandro";
        
    $nomi[1] = "Alessio";
        
    $nomi[2] = "Claudio";
        
    $nomi[3] = "Davide";
        
    $nomi[4] = "Dario";
        
    $nomi[5] = "Francesco";
        
    $nomi[6] = "Giancarlo";
        
    $nomi[7] = "Luca";
        
    $nomi[8] = "Luigi";

        
    $nome "";
        if (
    $_GET["nome"]!= null){$nome $_GET["nome"];}
        
    $risultato "";

        if (
    strlen($nome) > 0)
        {        
            for (
    $i 0$i count($nomi); $i++)
            {
                if (
    strtoupper($nome) == strtoupper(substr($nomi[$i], 0strlen($nome))))
                {
                    if (
    $risultato == "")
                    {
                        
    $risultato $nomi[$i];
                    }
                    else
                    {
                        
    $risultato .= ", " $nomi[$i];
                    }
                }
            } 
        } 

        if (
    $risultato == "")
        {
            echo 
    " value=\"Nessun risultato...\"";
        }
        else
        {
            echo 
    " value=\"$risultato\"";
        }
    ?>/>
        </form>
        
        </div>
    </body>
    </html>
    e del JavaScript associato:
    var XMLHTTP;

    function Richiesta(Stringa)
    {
    if (Stringa.length > 0)
    {
    var url = "ajax.php?nome=" + Stringa.toUpperCase();
    XMLHTTP = RicavaBrowser(CambioStato);
    XMLHTTP.open("GET", url, true);
    XMLHTTP.send(null);
    }
    else
    {
    document.getElementById("risultati").innerHTML = "";
    }
    }

    function CambioStato()
    {
    if (XMLHTTP.readyState == 4)
    {
    var R = document.mia_form.nome.value;
    R.innerHTML = XMLHTTP.responseText;
    }
    }

    function RicavaBrowser(QualeBrowser)
    {
    if (navigator.userAgent.indexOf("MSIE") != (-1))
    {
    var Classe = "Msxml2.XMLHTTP";
    if (navigator.appVersion.indexOf("MSIE 5.5") != (-1));
    {
    Classe = "Microsoft.XMLHTTP";
    }
    try
    {
    OggettoXMLHTTP = new ActiveXObject(Classe);
    OggettoXMLHTTP.onreadystatechange = QualeBrowser;
    return OggettoXMLHTTP;
    }
    catch(e)
    {
    alert("Errore: l'ActiveX non verrà eseguito!");
    }
    }
    else if (navigator.userAgent.indexOf("Mozilla") != (-1))
    {
    OggettoXMLHTTP = new XMLHttpRequest();
    OggettoXMLHTTP.onload = QualeBrowser;
    OggettoXMLHTTP.onerror = QualeBrowser;
    return OggettoXMLHTTP;
    }
    else
    {
    alert("L'esempio non funziona con altri browser!");
    }
    }
    :berto:

  2. #2
    Nessuno mi dà una mano?

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.