Jquery ---->Ajax ----->Pph =====> problème ^^ inscrivez-forme ^^

Fermé
alilom Messages postés 5 Date d'inscription jeudi 16 octobre 2014 Statut Membre Dernière intervention 20 octobre 2014 - Modifié par alilom le 20/10/2014 à 08:08
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 - 21 oct. 2014 à 09:24
bonjours a tous
j'ai un probleme avec ajax ET jquery

Lorsque implémentation du code ne sont pas extraites sortie de php

LE CODE :

HTML : inscription.php

<form method="post" action="">

<p> Email :</p>
<input type="email" id="inpu" name="email" class="email"/> <span class="error"></span>
<p> Pseudo :</p>
<input type="text" id="inpu" name="pseudo" class="pseudo"/> <span class="error"></span>
<p> Mot de pass :</p>
<input type="password" id="inpu" name="pass" class="pass"/> <span class="error"></span>


<input type="submit" value="Créer un compte" id="submit" name="submit" class="creer"/>

</form>




PHP : registerphp.php

<?php 

include "outile/connect_to_mysql.php";

?>

<?php

if (isset($_POST['email']))     { $email=$_POST['email'];      }
if (isset($_POST['pseudo']))    { $pseudo=$_POST['pseudo'];    }
if (isset($_POST['pass']))      { $pass=sha1 ($_POST['pass']); }
if(isset($_POST['ville']))   { $wilaya = $_POST['ville'];   }

if (isset($_POST['submit']))

{
 if($email!= ' ' && $pseudo!= ' ' && $_POST['pass']!= ' ')
{
 
 if( strlen($_POST['pass']) > 5){
 $query = mysql_query("INSERT INTO clients (email,pseudo,pass) VALUE ('$email','$pseudo','$pass')");
 
 
 if($query){ echo 'true'; }
 else{echo 'error';}
} 
}
}
?>




Jquery : inscription.js


$("#submit").click(function(){ 
 email=$(".email").val();
    pseudo=$(".pseudo").val();
    pass=$(".pass").val();
 top_id_country=$(".top_id_country").val();
 
 var datastr =  { email : email, pseudo : pseudo, pass : pass };
 
 

 if(email!=""){
  
 $.ajax({
   type: "POST",
   url: "registerphp.php",
data: datastr,
   success: function(data){    
if(data=='true')    {
$(".result").html(data);
}
else    {
$(".result").css('display', 'inline', 'important');
$(".result").html(data);
}
   },
   beforeSend:function()
   {
$(".result").css('display', 'inline', 'important');
$(".result").html("Loading...")
   }
  });
return false;
 }
});



Le problème est lorsque click sur Créer un compte, data de jquery ne marche pas
n ya pas rien de resultas ici :

if(data=='true') {
$(".result").html(data);
}


Merci d'avc tt ^^

3 réponses

Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 525
20 oct. 2014 à 14:14
Salut,

Tu peux commencer par ajouter un log dans la fonction success de l'appel ajax pour voir ce qui est reçu dans data :
    success: function(data) {
        console.log(data);
        /* suite du code */

Tu pourras voir le log dans la console web de ton navigateur.

Supprime également l'ouverture suivi de la fermeture de la balise php dans registerphp.php :
?>

<?php

Non seulement c'est inutile mais de plus cette ligne blanche est envoyé au client. Donc au lieu de ne renvoyer que la chaine 'true' ou 'error'
true

Ton fichier envoie une ligne vide avant la chaine

true

ce qui peut expliquer ton problème initial.

Bonne journée
0
alilom Messages postés 5 Date d'inscription jeudi 16 octobre 2014 Statut Membre Dernière intervention 20 octobre 2014
20 oct. 2014 à 20:17
Salut
merci Pitet ^^

le log dans la console web de navigateur est " " vide !!

donc data est vide !!


mrc bq
0
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 525
21 oct. 2014 à 09:24
C'est normal puisque dans ton fichier php, la condition suivante
if (isset($_POST['submit']))

n'est jamais vrai car tu n'envoie pas de paramètre 'submit' via ta requête ajax.

Pour corriger, soit tu envoie un paramètre 'submit' via la requête ajax, soit tu supprimes cette condition.
0