Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it L'avatar di andreto
    Registrato dal
    Dec 2012
    Messaggi
    127

    Variabile Globale in Ajax

    Ciao a tutti,
    ho un problema che non riesco a risolvere.
    Vorrei leggere il contenuto di "risposta" anche fuori della funzione xmlhttp.onreadystatechange proprio dove ho inserito il 2° alert.
    E' possibile? Come posso fare?

    codice:
    function verificadatireg(){
    var risposta;
    if (window.XMLHttpRequest){
      xmlhttp=new XMLHttpRequest();
      }
    else{
      xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
      }
    xmlhttp.onreadystatechange=function(){
      if (xmlhttp.readyState==4 && xmlhttp.status==200){
        risposta = xmlhttp.responseText;
        alert (risposta); // questo alert da 1
        }    
      }
    xmlhttp.open("GET","trovaemailneldb.php",true);
    xmlhttp.send();
    
    alert (risposta); // questo alert non da niente
    }

    la pagina trovaemailneldb.php contiene semplicemente questo per provare lo script:


    Codice PHP:
    <?php echo '1'?>

  2. #2
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,654
    Ciao, non puoi avere l'alert di quella variabile o meglio potrebbe esserci se per caso la chiamata in ajax asincrona fosse cosi' veloce da ritornare prima dell'alert.

    Quello che potresti fare sarebbe:
    [code]

    var test = null;
    function verificadatireg(){
    var risposta;
    if (window.XMLHttpRequest){
    xmlhttp=new XMLHttpRequest();
    }
    else{
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.onreadystatechange=function(){
    if (xmlhttp.readyState==4 && xmlhttp.status==200){
    risposta = xmlhttp.responseText;
    alert (risposta); // questo alert da 1
    test = risposta;
    }
    }
    xmlhttp.open("GET","trovaemailneldb.php",true);
    xmlhttp.send();

    alert (test); // questo alert non da niente
    }
    [code]
    In questo caso test sarebbe globale ma comunque prima di visualizzare l'alert dovresti attendere la fine della chiamata ajax

    In breve la chiamata ajax viene lanciata in background pre i fatti sui e lo script continua comunque.

    Se tutto dipende dall'esito di "risposta" sposta il resto del codice li, o mettilo in una funzione da richimare sempre da li.

  3. #3
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,131
    @andreto ti ricordo che è vitato il cross-post
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

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