Chiamata ajax che non ne vuole sapere di funzionare

Paperino78

Utente Attivo
30 Giu 2012
409
0
16
Milano
Ragazzi, non so dove sbattere la testa. Ho un form nel quale con una chiamata ajax tramite la mail inserita recupero una domanda, il tutto con un onclick oppure onchange questo è il codice html
HTML:
 <p>
<label for="mail" class="block"></label>
<input type="email" name="email" id="email_rec" onchange="check1()" placeholder="Inserisci la tua mail"/>
</p>
<p>
<label for="domanda" class="block"></label>
<div type="text" name="domanda" id="domanda_rec" onclick="check1()" ></div>
</p>
questo invece il file ajax
HTML:
//Funzione per recuperare la domanda dal Db tramite Ajax
$(document).ready(function(check1){
	$('#email_rec').change(function(){
		var email2 =  $('#email_rec').val();
		$('#domanda_rec').load(
		"../funzioni_ajax/rec_domanda.php",
		{email2: email2},
		function() {
			$('#domanda_rec');
		});
	});
});
questo il codice php per interrogare il db
PHP:
if(isset($_REQUEST["email2"])) $email2 = $_REQUEST["email2"];

if($stmt = $mysqli->query("SELECT * FROM utenti WHERE email = '".$email2."'")){

	while($row = $result->fetch_assoc())
	{
		if($email2 == $row['email']){
			//Se è uguale metto in echo la domanda di sicurezza legata alla mail
			echo $row['domanda'];
		} else {
			echo "Email non presente nel nostro Database!";
		}
	}
} $result->close();

ovvimente ho gia effettuato la connessione al db, ma nonostante tutto non funziona. Chi mi saprebbe dire dove sbaglio?
 
Ragazzi dopo avervi ragionato ho capito che il.problema era in parte sul php dove al posto della variabile $result andava invece $stmt mentre sul codice js mancavano alcuni apici ed il collegamento al file php era sbagliato. Posto a breve il codice corretto, nel caso servisse a qualcuno.
 
Ecco il codice corretto:
PHP:
if(isset($_REQUEST["email2"])) $email2 = $_REQUEST["email2"];

if($stmt = $mysqli->query("SELECT * FROM utenti WHERE email = '".$email2."'")){

    while($row = $stmt->fetch_assoc())
    {
        if($email2 == $row['email']){
            //Se è uguale metto in echo la domanda di sicurezza legata alla mail
            echo $row['domanda'];
        } else {
            echo "Email non presente nel nostro Database!";
        }
    }
} $stmt->close();

mentre qua il codice js
HTML:
//Funzione per recuperare la domanda dal Db tramite Ajax
$(document).ready(function(check1){
	//Al verificarsi dell'evento change per l' id email_rec procedo
	$('#email_rec').change(function(){
		// associo alla variabile email2 i lvalore dell' id email_rec
		var email2 =  $('#email_rec').val();
		//Carico nell' id domanda_rec il risultato dato dall'elaboraione del valore email2 nel file php
		$('#domanda_rec').load(
		"./funzioni_ajax/rec_domanda.php",
		{'email2': email2},
		//Qui metto i risultati e li metto nell' id domanda_rec
		function() {
			$('#domanda_rec');
		});
	});
});

Piccola variazione invece di avere due pagine, una con username e l'altra con password da recuperare ho messo un radio button in modo che l'utente selezioni ciò che vuole recuperare, il codice php e js non cambiano ovviamente.

Grazie a tutti
 

Discussioni simili