problemi di validazione asincronizzazione dati

paperinik4

Utente Attivo
29 Mag 2011
1.811
0
36
Roma
www.ricetteagogo.it
Salve a tutti,

E' da poco che sto cercando di capire come funzionano le chiamate ajax ma con ben pochi risultati:E spongo subito il mio problema. Dovrei fare un modulo di registrazione che fa la verifica dei dati in contemporanea mentre inserisci username, email e password. Ora io ho questo esempio di inizio preso da internet nelle mie varie ricerche. però da qui non so andare avanti. I file dovrebbero essere tre principalmente:

1) Modulo html d'iscrizione;

2) connetti.php (che si riferisce alla chiamata del db)

3) Modulo chiamata ajax (checkdati.php)

Iniziamo a postare l'esempio che ho sopratuttto capire se è giusto o meno:


Questo che posto è il modulo di iscrizione.php

PHP:
<html>
<head>
        <script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
 
</head>
    <script type="text/javascript">
        function validateForm(){
                        //RECUPERO DEI PARAMETRI
            $('#loader').show();
            $('#invia').attr('disabled',true);
           
        var nome=$('#nome').val();
            var cognome=$('#cognome').val();
            var email=$('#email').val();
            var username=$('#username').val();
                        
        //ESECUZIONE DELLA CHIAMATA AJAX
            $.ajax(
                {
                    type: 'POST',
                    url: 'checkdati.php',
                    data: {nome_p:nome, cognome_p:cognome, email_p:email,username_p:username},
                    success: function(data){
                                        //SE CI SONO ERRORI MOSTRO L'ERRORE ALTRIMENTI UN MESSAGGIO DI CONFERMA
                        if(data.error==1){
                            alert(data.message);
                        }else{
                            alert("Registrazione ok");
                        }
                        $('#loader').hide();
                        $('#invia').attr('disabled',false);
                    },
                    complete: function(data){},
                    failure: function(data){
                        alert("Errore nella chiamata ajax");
                        $('#loader').hide();
                        $('#invia').attr('disabled',false);
                    }
            });
        }
 
    </script>
</head>
<body>
    <div align ="center">
    <h2>Esempio form di registrazione</h2>
    </div>
    <form action="" method="post">
        
        <div class="row">
            <p><p>
            <label>Nome: <input name="nome" id="nome" type="text"/> </label>
        </div> </p></p>
        <div class="row">
            <p><p>
            <label>Cognome: <input type="text" name="cognome" id="cognome"/></label>
        </div> </p></p>
        <div class="row">
            <p><p>
            <label>Email: <input type="text" name="email" id="email"/></label>
        </div> </p></p>
        <div class="row">
            <p><p>
            <label>Username: <input type="text" name="username" id="username"/></label>
        </div> </p></p>
        <div class="row">
            <label></label>
            <input type="button" onclick="validateForm(); return false;" value="Invia"  name="invia" id="invia"/>
            <img src="130.png" id="loader" style="display:none" />
        </div>
    </form>
</head>  
<body>  
    
       
        <?php
        require_once("connetti.php");

        ?>
    </body>
</html>

Ora il mio problema è il segu7ente nel file chiamato checkdati.php, cosa ci debbo inserire ???? Considerando che poi deve andare tutto in un db. Attualmente il db contiene solo nome & cognome per semplificare l'esempio, ma ovviamente lo posso ampliare aggiungtendo username, password ri-password, email. ri-emeail.

Spero in iun vostro aiuto e chiarimenti. Mi sono impantanato da secoli su qeusto argomento :(

P.S.: Se ho sbagliato sessione, cercavo la sessione ajax ma non l'ho trovata. Perdoatemi
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
26
Roma
alessandro1997.netsons.org
Leggendo il codice Javascript che esegue la validazione direi che il file PHP, in caso di errore, deve restituire una risposta JSON simile a questa:
Codice:
{
    "error": 1,
    "message": "Messaggio di errore..."
}
Mentre in caso non ci siano errori:
Codice:
{
    "error": 0
}
Per generare il JSON puoi usare la funzione PHP json_encode.
 

paperinik4

Utente Attivo
29 Mag 2011
1.811
0
36
Roma
www.ricetteagogo.it
Problemi su problemi con ajax non capisco dove sta l'errore

Salve a tutti,

Ritorno alla carica. Vorrei capire dove sbaglio nell'effetuare gli esempi trovati su internet per fare una chiamata ajax e avere la sincronizzazione (validazione) dei dati in diretta. Rporto di seguito due esempi: il primo l'ho preso via internet il secondo mi è è stato passato. credo che manchi in entrambi i listati qualcosa. moi potreste dare una mano per favore ??? il primo listato lo so l'ho postato qualche giorno fa ma non ho capito se esatto o meno e vorrei una conefrma. Comunque lo riposto anche per gli altri:

iscrizione.php

PHP:
<html>
<head>
        <script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
 
</head>
    <script type="text/javascript">
        function validateForm(){
                        //RECUPERO DEI PARAMETRI
            $('#loader').show();
            $('#invia').attr('disabled',true);
           
        var nome=$('#nome').val();
            var cognome=$('#cognome').val();
            var email=$('#email').val();
            var username=$('#username').val();
                        
        //ESECUZIONE DELLA CHIAMATA AJAX
            $.ajax(
                {
                    type: 'POST',
                    url: 'checkdati.php',
                    data: {nome_p:nome, cognome_p:cognome, email_p:email,username_p:username},
                    success: function(data){
                                        //SE CI SONO ERRORI MOSTRO L'ERRORE ALTRIMENTI UN MESSAGGIO DI CONFERMA
                        if(data.error==1){
                            alert(data.message);
                        }else{
                            alert("Registrazione ok");
                        }
                        $('#loader').hide();
                        $('#invia').attr('disabled',false);
                    },
                    complete: function(data){},
                    failure: function(data){
                        alert("Errore nella chiamata ajax");
                        $('#loader').hide();
                        $('#invia').attr('disabled',false);
                    }
            });
        }
 
    </script>
</head>
<body>
    <div align ="center">
    <h2>Esempio form di registrazione</h2>
    </div>
    <form action="" method="post">
        
        <div class="row">
            <p><p>
            <label>Nome: <input name="nome" id="nome" type="text"/> </label>
        </div> </p></p>
        <div class="row">
            <p><p>
            <label>Cognome: <input type="text" name="cognome" id="cognome"/></label>
        </div> </p></p>
        <div class="row">
            <p><p>
            <label>Email: <input type="text" name="email" id="email"/></label>
        </div> </p></p>
        <div class="row">
            <p><p>
            <label>Username: <input type="text" name="username" id="username"/></label>
        </div> </p></p>
        <div class="row">
            <label></label>
            <input type="button" onclick="validateForm(); return false;" value="Invia"  name="iInvia" id="invia"/>
            <img src="130.png" id="loader" style="display:none" />
        </div>
    </form>
</head>  
<body>  
    
       
        <?php
        require_once("connetti.php");

        ?>
    </body>
</html>

checkdati.php

PHP:
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>CheckDati</title>
    </head>
    <body>

        <?php
                require_once("connetti.php");

if(isset($_POST['username']) ){

#se esistono variabili posto con sto nome allora faccio come segue: $query_controllo = "SELECT username FROM utenti WHERE username = '$username'";

$controllo_esistenza = mysql_num_rows(mysql_query($query_controllo));

#se controllo_esistenza darà come valore un numero maggiore di zero #vorrà dire che sono presenti alcuni record nel database, con lo stesso valore che hai scritto nel campo input

if($controllo_esistenza > 0)
    { 
    echo "Mi dispiace questo utente già esiste"; 
    
    } else{ echo "Questo username che hai scelto è perfetto!"; 
    
    }

} 

?>
    </body>
</html>

Il checkdati.php dovrebbe servire per la verifica dei campi immessi. Spero che qualcuno mi aiuto e mi spieghi più nel dettaglio. Ho visto anche dei libri su ajax e jquery ma sono spiegati malissimo e saltano dei passaggi. Grazie a tutti.
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
26
Roma
alessandro1997.netsons.org
Come ho già detto, non puoi inviare i dati nel formato che ti pare, perché Javascript, nel fare il parsing della risposta restituita dal tuo script, richiede che siano in JSON e con una struttura ben precisa.

Il codice per il controllo è corretto, ma devi togliere tutto l'HTML e usare la funzione json_encode per restituire una risposta JSON. Inoltre, devi inviare l'header Content-Type (che dev'essere application/json). Guarda qui se non ti è chiaro: http://stackoverflow.com/a/7294846/705588.
 

paperinik4

Utente Attivo
29 Mag 2011
1.811
0
36
Roma
www.ricetteagogo.it
ciao

Ciao Alex,

Gli avevo dato un'occhiatina veloce ma era pronto in tavola. Domani ci do un'occhiata più profonda, spero di non avere difficoltà. Ti farò comunque sapere.
 
Discussioni simili
Autore Titolo Forum Risposte Data
radioButton Problemi validazione con jQuery validation jQuery 0
P Problemi validazione HTML e CSS 2
C Problemi di validazione xhtml strict, tag link e noscript HTML e CSS 1
N php problemi a visualizzare video PHP 3
T problemi con dati menu a tendina HTML e CSS 2
T problemi di connessione MySQL 2
M Upload immagine con javascript problemi con FormData() Javascript 1
F Problemi visualizzazione mappa Android studio Sviluppo app per Android 0
S Problemi Javascript + Aruba Javascript 2
A Problemi con move_uploaded_file PHP 7
M Problemi con la stampa dei valori in php PHP 1
L Problemi con il login PHP 2
L Problemi form Pagina php HTML e CSS 3
R Tutto su utf-8 ma ancora problemi con i caratteri speciali in mysql MySQL 1
Z problemi con foreach insert into PHP 10
B javascript per problemi con pdf e Safari Javascript 0
N Problemi kit videosorveglianza IP Cam e Videosorveglianza 0
M Problemi con creazione maschere Presentati al Forum 1
M Problemi con query a più tabelle PHP 3
R Problemi anomalo insermento in db PHP 9
S Problemi delle funzioni eliminate con PHP e MySQL PHP 4
S Problemi di un principiante PHP 3
M Problemi con blog Grav CMS (Content Management System) 0
F Problemi di visualizzazione di un sito su più browser WordPress 0
S Problemi di visualizzazione form contatti sito web HTML e CSS 2
S incoerenza di stampa. problemi con il magenta Photoshop 3
A problemi con paypall Java 1
A Problemi di accesso da remoto a Ipcam IP Cam e Videosorveglianza 5
michele81 [WordPress] problemi plug meteo api key WordPress 4
E Problemi in registrazione telecamere Dahua IP Cam e Videosorveglianza 6
S Problemi con modulo upload video php (help!) PHP 0
felino [Windows 8.1] Problemi con connessione WiFi Windows e Software 0
M [PHP] Problemi su inserimento array nel db PHP 7
E [PHP] problemi nuova riga con fwrite su piattaforma android PHP 5
M [PHP] Problemi di salvataggio su campo calcolato PHP 0
O [HTML] problemi con la regola "background-attachment: fixed" in EDGE HTML e CSS 0
M [PHP] Problemi con query unione PHP 11
M [PHP] Problemi con select PHP 6
Spown [WordPress] Problemi visualizzazione su più browser + voci menu in movimento WordPress 1
ANDREA20 [HTML] problemi con il footer HTML e CSS 1
D [MS Access] problemi con inserimento campo in una maschera MS Access 6
M [PHP] Problemi con il riconoscimento login. PHP 21
A [WordPress] problemi con xampp WordPress 2
M Problemi con database Apache/2.4.37 (Win32) OpenSSL/1.1.1a PHP/7.3.1 PHP 6
P Problemi comunicazioni Comunicazioni dallo Staff 8
G I problemi non vengono solo per nuocere Presentati al Forum 0
A Problemi Wi-Fi Fastweb Reti LAN e Wireless 4
C [WordPress] Url vulnerability e problemi sito da mobile WordPress 0
S [PHP] problemi con le sessioni PHP 3
B Problemi accesso Instagram Smartphone e tablet 1

Discussioni simili