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

    Ajax & Php: verificare se un nome esiste ed e' corretto.

    Ciao a tutti.
    Il mio problema è il seguente: inserendo un nominativo, in un form di registrazione, debbo controllare se il dato inserito è formalmente corretto (non ci debbono essere spazi, deve essere lugo almento 6 caratteri) e cosa più importante non deve essere presente nel database.

    Questo è il codice javascript:
    codice:
    function KeyUpNominativo()
     {
       Nome=getElementById('Nominativo').value;
       Carica_Blocco="VerificaNominativo&Nome="+Nome;
    
     }
    function Carica_Blocco(P)
     {
     if (window.XMLHttpRequest)
      {
      xmlhttp=new XMLHttpRequest();
      }
     else
      {
      xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
      }
      xmlhttp.abort();
      xmlhttp.onreadystatechange=Elabora;
      xmlhttp.open("GET","index.php?A="+P,true);
      xmlhttp.send();
     }
     
    function Elabora()
     {
      var currentTime = new Date();
    
        document.getElementById('Debug_NumeroUtente').innerHTML="Elabora --  " + currentTime.getTime();
     xmlDoc=xmlhttp.responseXML;
    // x=xmlDoc.documentElement.childNodes.length;
    
     if (xmlDoc==null)
      {
       return 0;
       }
      X=xmlDoc.childNodes;
     x=X.length;
    
     for (n=0; n<x; n++)
      {
       nodo=X[n].nodeName;
       y=X[n].childNodes;
       Y=y.length;
       for (N=0; N<Y; N++)
        {
    	 nome=y[N].nodeName;
    	 tiponodo=y[N].nodeType;
    	 Valore=y[N].childNodes[0].nodeValue;
         switch (nodo)
    	  {
    	   case "update":
    	    e = document.getElementById(nome);
    		e.innerHTML=Valore;
    	  break;
    	 }
    	}
      }
     xmlhttp.abort();
     }
    Questo il codice HTML
    codice:
     <input type='text' id='Nominativo' onkeyup='KeyUpNominativo()'>
     <div id='Risposta'>Spazio per la risposta della verifica del nominatovo</div>
    Il codice php di index.php restituisce un file xml simile a questo

    codice:
    ...
    <update>
     <Risposta>Nome troppo corto</Risposta>
    </update>
    La mia difficoltà è che se uso una chiamata sincrona:
    codice:
    xmlhttp.open("GET","index.php?A="+P,false);
    ad ogni pressione di tasto mi addormento.
    utilizzando una chiamata asincrona
    codice:
    xmlhttp.open("GET","index.php?A="+P,true);
    dopo che ho finito di premere i tasti... non sempre ho l'aggirnamento.
    Oppure: scrivo un nome che esiste nel database es: "alessandro" ho la risposta che esiste (quindi tutto ok)
    Se cancello l'ultima lettera (rimane alessadr -> che non esiste nel db) non mi aggiorna la risposta !!!!!

    Credo che il problema sia la sovrapposizione delle varie chiamate ... credovo di risolvere con xmlhttp.abort() , in verità messi un po a casaccio !!!!

    Spero di essere stato chiaro e che qualcuno mi possa aiutare ad risolvere.

    Grazie

  2. #2
    Dimenticavo... non ho postato il codice php per non annoiarvi troppo ... ma se qualcuno lo ritiene necessario .... Grazie

  3. #3
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,812
    visto che esponi un problema Ajax, sposto su JavaScript


  4. #4
    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 © 2026 vBulletin Solutions, Inc. All rights reserved.