Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 28

Discussione: Controllo Ajax

  1. #1

    Controllo Ajax

    Salve a tutti...
    Non riesco a sistemare in modo che se i due campi sono compilati e disponibili abilita il pulsante SUBMIT, ecco il codice





    function check_campi_1()
    {

    // code for IE7+, Firefox, Chrome, Opera, Safari
    if(window.XMLHttpRequest)
    {

    var email = document.getElementById("email").value;

    xmlhttp_1 = new XMLHttpRequest();

    } else {

    // code for IE6, IE5
    xmlhttp_1 = new ActiveXObject("Microsoft.XMLHTTP");

    }

    xmlhttp_1.onreadystatechange = function()
    {

    if(xmlhttp_1.readyState == 4 && xmlhttp_1.status == 200)
    {

    document.getElementById("cl_email").innerHTML = xmlhttp_1.responseText;

    if(document.getElementById("cl_email").innerHTML == "OK")
    {

    check_1 = true;

    }

    }

    }

    xmlhttp_1.open("GET", "controls_php/amministratori/amministratori_n.php?email=" + email, true);

    xmlhttp_1.send();

    }








    function check_campi_2()
    {

    var username = document.getElementById("username").value;

    // code for IE7+, Firefox, Chrome, Opera, Safari
    if(window.XMLHttpRequest)
    {

    xmlhttp_2 = new XMLHttpRequest();

    } else {

    // code for IE6, IE5
    xmlhttp_2 = new ActiveXObject("Microsoft.XMLHTTP");

    }

    xmlhttp_2.onreadystatechange = function()
    {

    if(xmlhttp_2.readyState == 4 && xmlhttp_2.status == 200)
    {

    document.getElementById("cl_username").innerHTML = xmlhttp_2.responseText;

    if(document.getElementById("cl_username").innerHTM L == "OK")
    {

    check_2 = true;

    }

    }

    }

    xmlhttp_2.open("GET", "controls_php/amministratori/amministratori_n.php?username=" + username, true);

    xmlhttp_2.send();

    }


    if(check_1 || check_2)
    {

    document.getElementById("registra").disabled = false;

    }



    window.onload = function()
    {

    document.getElementById("registra").disabled = true;

    }




    NOn funziona e perchè? Cosa ho sbagliato?

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,134
    Ma i responseText restituiscono OK?
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Si, l'ho fatto dentro PHP che se è corretto dice OK

  4. #4
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,134
    Prova cosi:
    codice:
    document.getElementById("cl_username").innerHTML = xmlhttp_2.responseText;
    if(xmlhttp_2.responseText.indexOf("OK")!=-1)
    {
    check_2 = true;
    }
    Cosi verifichi che nel response vi sia la parola OK (con il confronto == potrebbero esserci spazi che inficiano il controllo)
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  5. #5
    Non funziona..
    Il problema è che il codice

    if(check_1 || check_2)
    {

    document.getElementById("nome").value = 'inserito correttamente';

    }

    NOn riesci a chiamare il check_1 e check_2 che stanno tra FUNCTION check_campi_1() e FUNCTION check_campi_2()

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    imposta i due booleani come variabili globali

    check_1 = false;
    check_2 = false;

    fuori da tutti i metodi

  7. #7
    Niente da fare
    :-(

  8. #8
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,134
    Posta il link alla pagina pubblica cosi vediamo il tutto in azione.
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  9. #9
    Se fai richieste asincrone
    codice:
    xmlhttp_1.open("GET", "controls_php/amministratori/amministratori_n.php?email=" + email, true);//terzo parametro settato a true
    la verifica
    if(check_1 || check_2)
    viene eseguita prima che venga restitutito il responseText.

    Se ajax deve restituire un valore da utilizzare nelle funzioni javascript, di norma, è bene fare richieste sincrone (terzo parametro settato a false)
    [code]
    codice:
    xmlhttp_1.open("GET", "controls_php/amministratori/amministratori_n.php?email=" + email, false );//terzo parametro settato a false
    in alternativa dovresti fare la verifica nell'onreadystatechange

  10. #10
    Ho provato anche questo, non funziona e secondo me c'è qualcosa di sbagliato su AJAX
    :-(

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.