[AJAX] PHP + JS Completamento auto.

lukemon79

Nuovo Utente
15 Feb 2007
4
0
0
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:
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:<br>
        <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], 0, strlen($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:
HTML:
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!");
}
}
Aiuto!:book:
 

Discussioni simili