Visualizzazione dei risultati da 1 a 5 su 5
  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.
    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
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Ti sei già risposto la variabile var risposta la sposti fuori da verificadatireg (e da qualsiasi altra funzione) una vota eseguita la chiamata Ajax sarà valorizza col response della stessa.
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Utente di HTML.it L'avatar di andreto
    Registrato dal
    Dec 2012
    Messaggi
    127
    Quote Originariamente inviata da cavicchiandrea Visualizza il messaggio
    Ti sei già risposto la variabile var risposta la sposti fuori da verificadatireg (e da qualsiasi altra funzione) una vota eseguita la chiamata Ajax sarà valorizza col response della stessa.
    Ciao Andrea,
    grazie per la tua risposta ma avevo già provato e non mi funzionava.

    Di seguito ti scrivo un po di codice, magari il problema arriva da un'altra parte.

    Quando premo il bottone Registrati, compare il 2° alert e quindi mi da null.
    Dopo compare il 1° alert e mi restituisce "1".

    Dato che sotto il 2° alert devo inserire alcuni IF vorrei che in quel punto la variabile contenga già la risposta.

    Grazie ancora,
    ciao
    Andrea

    index.php

    codice:
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <script type="text/javascript" src="verificainputreg.js">
    </script>
    </head>
    <body>
    <form action="registrazione.php" method="post" name="modulo" onsubmit="return verificadatireg();"> 
    <table>
    <tr>
    <td>Email:</td>
    <td><input type="email" name="email" />
    </td>
    </tr>
    <tr>
    <td>Ripeti Email:</td>
    <td><input type="email" name="remail" /></td>
    </tr>
    <tr>
    <td>Password:</td>
    <td><input type="password" name="password" /></td>
    </tr>
    <tr>
    <td></td>
    <td><button type="submit" name="submit">Registrati</button></td>
    </tr>
    </table>
    </form>
    </body>
    </html>

    verificainputreg.js

    codice:
    var risposta = null;
    
    
    function verificadatireg()
    {
    if (window.XMLHttpRequest)
      {// code for IE7+, Firefox, Chrome, Opera, Safari
      xmlhttp=new XMLHttpRequest();
      }
    else
      {// code for IE6, IE5
      xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
      }
    xmlhttp.onreadystatechange=function()
      {
      if (xmlhttp.readyState==4 && xmlhttp.status==200)
        {
        risposta = xmlhttp.responseText;
        alert (risposta); // alert 1
        }    
      }
      
    xmlhttp.open("GET","trovaemailneldb.php",true);
    xmlhttp.send();
    
    
    alert (risposta); // alert 2
    }

    trovaemailneldb.php

    codice:
    <?php echo '1'; ?>
    Ultima modifica di andreto; 15-01-2014 a 10:24

  4. #4
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    E' tutto corretto il secondo alert e fuori dalla funzione ajax pertanto la varaibile è vuota, per averla disponibile devi richiamare la funzione verificadatireg() al caricamento della pagina onload=function(){verificadatireg()}
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  5. #5
    Utente di HTML.it L'avatar di andreto
    Registrato dal
    Dec 2012
    Messaggi
    127
    Quote Originariamente inviata da cavicchiandrea Visualizza il messaggio
    E' tutto corretto il secondo alert e fuori dalla funzione ajax pertanto la varaibile è vuota, per averla disponibile devi richiamare la funzione verificadatireg() al caricamento della pagina onload=function(){verificadatireg()}
    Niente da fare, non va.
    Il secondo alert è già dentro la funzione verificadatireg().
    Comunque sia, se inserisco onload=function(){verificadatireg()} mi apre subito l'alert con valore null ancora prima di cliccare su Registrati.

    Forse è meglio che spiego cosa devo fare

    Vorrei cliccando su Registrati interrogare il database per vedere se l'email esiste già.
    Se esiste, devo fare alcune cose.
    Se non esiste devo farne altre.

    C'è una strada più semplice in Javascript / Ajax?
    Con Php nessun problema ma non vorrei fare il refresh della pagina.

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.