Non funziona il controllo dati con ajax

paperinik4

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

So che ritorno sull'argomento ma non sono riuscito a schiodare. Il punto è questo. Sono riuscito finalmente a capire come diavolo funziona una chiamata ajax, ma il problema è che mi scavalca il controllo dell'inserimento dati. Ossia me li fa passare. maa questo punto non capisco dove sta l'errore. Spero che qualche buon anima pia mi possa aiutare. Grazie in anticipo. (p.s. x cricric la situazione è diversa da quella che avevo postato qualche mese fa).

connessionemysqli.php

PHP:
<?php
// definizione delle variabili 
$host = "xxx.xxx.xxx.xxx"; 
$user = "xxx"; 
$pass = "xxx"; 
$db = "MegaLaboratorio"; 
// connessione al DBMS 
$con= new mysqli($host, $user, $pass, $db); 
if( mysqli_connect_errno()) { 
echo ('Non riesco a connettermi: ' . mysqli_connect_errno() ); 
}else{ 
#echo ("Ti sei connesso al database"." ".$db); 
}
?>

iscrizione.php

PHP:
html> 
    <head>  
		<script src='http://code.jquery.com/jquery-1.9.1.min.js'></script>  

        <script type="text/javascript">
		$(function()
		{	
			$('input').keyup(function()
			{       
                                var cognome= $('#cognome').val();
                                var nome= $('#nome').val();
    				var username = $('#username').val();
				var email = $('#email').val(); 
				var ripemail = $('#ripemail').val(); 
                                var password = $('#password').val();        
                                var pass2 = $('#pass2').val();
                                
                                
				 if((username.length && email.length && ripemail.length && password.length && pass2.length )>0) { 
					   $('#submit').attr('disabled',false); 
					} else { 
					$('#submit').attr('disabled',true);
					}  
   
   
   
			});
		});               
                if(cognome.value=="") {
       alert("Errore: compilare il campo COGNOME");
       cognome.focus();
       return false;
     }
        </script>   
	</head>   
    <body>   
        <div align="center">  
            <h2>Esempio form di registrazione</h2>   
        </div>   
        <form action="checkdate.php" method="POST">  
            <div style='font-family:Comic Sans MS; font-size: 20px'>      
            <label>  
                
                
                Cognome: <input onKeyUp="FormKeyUp()" type="text" name="cognome" id="cognome"/>  
                <span id="check_cognome"></span>  
            </label>   
            <label>  
                <p><p>  
                Nome: <input onKeyUp="FormKeyUp()" type="text" name="nome" id="nome" />  
                <span id="check_nome"></span>  
                </p></p>      
            </label>  
                Username: <input onKeyUp="FormKeyUp()" type="text" name="username" id="username"/>  
                <span id="check_username"></span>  
            </label>   
            <label>  
                <p><p>  
                E-Mail: <input onKeyUp="FormKeyUp()" type="text" name="email" id="email" />  
                <span id="check_email"></span>  
                </p></p>      
            </label>  

            <label>  
                <p><p>  
                Ripeti-email: <input onKeyUp="FormKeyUp()" type="text" name="ripemail" id="ripemail" autocomplete="off" />  
                <span id="check_ripemail"></span>  
                </p></p>  
            </label>   
                
                <label>  
                <p><p>  
                Password: <input onKeyUp="FormKeyUp()" type="password" name="password" id="password"  />  
                <span id="check_password"></span>  
                </p></p>  
            </label>   
                
                <label>  
                <p><p>  
                Ripeti-Password: <input onKeyUp="FormKeyUp()" type="password" name="pass2" id="pass2"  />  
                <span id="check_pass2"></span>  
                </p></p>  
            </label>   
                
            </div>  
            <div align ="center">  
            <button id ="submit" style="font-family:Comic Sans MS;font-size:25px" disabled>Invio Dati</button> 
            </div>   
        </form>   
    </body>  
</html>

Su iscrizioni.php manca la chiamata ajax che se non erro dovrebbe andare subito dopo il controllo dell'abilitazione/disabilitazione del tasto invio

checkdate.php

PHP:
<?php
         require_once("connettimysqli.php");

$email=$_POST['email'];        //qua il mio compilatore netbeans 7.2, mi da errore triangolino giallo non so il perchè
 
$query="SELECT username,email FROM uty WHERE username='$username' AND email='$email'";

$result=$con->query($query);

// controllo l'esito della query 
if($result->num_rows > 0) {
// Lancio una query per inserire tre righe nella tabella 
 $con->query("INSERT INTO uty (username, email) VALUES ('$username', '$email')"); 
echo 'Dati inseriti correttamente'; 

}else {
    echo 'Errore nella query'; 
    
}
?>

nel comntrollo dei dati mancano le famose iconcine "V" per libero e "X" per occupato e un setfosuc si campi non compilati: So di chiedere troppo ma da solo non gliel'ho fatta. Purtroppo ho seguito degli esempi ma invani. Anche quelli riportatomi sui libri che ho non vanno bene. Grazie a tutti.
 
Punto 1: il titolo deve essere chiaro e attinente col problema che hai.
Punto 2: dai per scontato che tutti abbiano seguito i vecchi thread.

Prova a spiegare meglio quale controllo scavalca, quali dati vengono inseriti, dove e come.
Potrei vederlo dal codice ma vorrei avere un'idea prima di iniziare a vedere tutto quel codice.
 
Ciao Longo,

Spero che il titolo vada bene ora. Allora il punto è questo, quando inserisco username ed email lui dovrebbe verificare i dati immessi nel form. Quindi se digito username: pippo mi dovrebbe dire se è già presente uno username con tale denominazione oppure se è libero segnalandolo all'utente con "v" per libero e con una "X" per occupato. Stessa cosa se metto l'email: pippo@gmail.com mi dovrebbe dire asicronamente se è libero oppure se è occupato. Questo con quanto ho postato non me lo fa è come se scavallase il controllo e mi fa inserire i dati nel db. Secondo me è la query sbagliata che dovrebbe essere la seguente:

PHP:
$query="SELECT username,email FROM uty WHERE username='$username' AND email='$email'";

$result=$con->query($query);

Spero che come informazioni ti siano sufficienti. Grazie.
 
Perché credi sia sbagliata quella query? L'hai testata? Sintatticamente è corretta, poi dipende dal nome dei campi, variabili e nome della tabella se va tutto ok. Testala separatamente dal resto.
 
Ciao

Allora,

L'ho presa da un vecchio programma che avevo fatto interamente con tutti i controlli solo in php senza ajax. E la funzionava correttamente. Quindi mi sono detto se funziona la perchè non dorevbbe funzionare anche con la chiamata ajax ??? E l'ho copiata e incollata sul file checkdate.php Modificandola con l'estensione mysqli. E li benchè l'abbia provata duecento mila volte, se inserisco pippo (che so che è presente nel mio db), mi dovrebbe comparire una "X" sbaglio ???? L'intero file è questo:

checkdate.php

PHP:
// controllo l'esito della query 
if($result->num_rows > 0) {
// Lancio una query per inserire tre righe nella tabella 
 $con->query("INSERT INTO uty (username, email) VALUES ('$username', '$email')"); 
echo 'Dati inseriti correttamente'; 

}else {
    echo 'Errore nella query'; 
    
}
 

Discussioni simili