Salve,
ho iniziato da pochissimo ad usare ajax quindi mi trovo davanti a dei problemi semplici.
Vorrei fare validazione dei dati di una form "al volo".
La tecnica che ho pensato è questa:
- L'utente mette username
- Lo script invia la richiesta alla pagina check.php che verifica nel database se lo username è disponibile, se si ritorna la stringa "ok" altrimenti "ko"
- Lato client il gestore dell'oggetto xmkhttprequest che chiamiano verifica() controlla, se è ritornato "ok" setta la variabile controllo=true altrimenti controllo=false
funzioneOnBlur()
{
inviaRichiestaAServer();
if(controllo=true){
alert("si");
}
else
{
alert("no");
}
}
inviaRichiestaAServer(){
...
req.onreadystatechange=verifica;
...
}
verifica(){
if(req.responseText=="ok"){
controllo=true
}
else
controllo=false
}
Il problema è che la prima volta che viene fatto il controllo non funziona ovvero ho alert("no");, la seconda volta in poi si... è un problema di sincronismo? forse la chiamata di verifica è ritardata e quindi al successivo if(controllo=true) la prima volta non lo prende?
Se non sono stato chiaro mi spiego meglio... grazie!!