11521 sujets

JavaScript, DOM et API Web HTML5

Bonjour à tous,

Je viens vers vous car je ne sais pas comment récupérer les données trouvés de la function .get()

Je vous explique tout en détails :

Quand je clique sur un button, j'execute la fonction .get() vers mon fichier motif_pseudo.php, je passe un paramètre, le nouveau pseudo que l'utilisateur à choisi.

Le fichier motif_pseudo.php, vérifie si le nouveau pseudo est déjà utilisé (j'aimerai qu'il soit unique).
Tout cela fonctionne.

J'aimerai qu'au retour ce fichier de base (une fois la fonction .get() fini) je puisse récupérer la variable du fichier motif_pseudo.php (qui contient 0 si le pseudo n'ai pas dans la bdd si 1 s'il y est).

Selon le contenu de cette variable, j'affiche une fenêtre modale (css) pour indiquer à l'utilisateur que le changement de pseudo à bien été effectué ou l'inverse.

Pour simplifié tout ça, comment récupérer les données qu'AJAX va chercher dans motif_pseudo.php ?

J'ai essayé ceci mais les $_SESSION ne s'actualise automatique !


<script>
          $(function() {
            $('#bt_modif_1').click(function() {
              $.get('modif_pseudo.php?new_pseudo='+document.getElementById('new_pseudo').value, function(data) {
                var succes_modif_pseudo = <?php echo $_SESSION["succes_modif_pseudo"]; ?>;
                alert(succes_modif_pseudo);
                if(succes_modif_pseudo == 1) { //reussi
                        //on affiche la fenetre modale reussi
              } else if(succes_modif_pseudo == 0) { //echec
                       //on affiche la fenetre modale echec
              }
              }); 
            });  
          });
          </script>


Fichier motif_pseudo.php :


$sql = "SELECT * FROM membres WHERE (pseudo = '".$_GET['new_pseudo']."' OR new_pseudo = '".$_GET['new_pseudo']."')";
echo $sql;
$req_pseudo = $bdd->query($sql);
$pseudo_exist = $req_pseudo->rowCount();
if($pseudo_exist == 0) {
	$_SESSION['succes_modif_pseudo'] = 1; // Aucune erreur donc on affiche la popup de succes !
	$update_pseudo = $bdd->prepare("UPDATE membres SET new_pseudo = '".$_GET['new_pseudo']."' WHERE id = ?");
        $update_pseudo->execute(array($_SESSION['id']));
        $_SESSION['new_pseudo'] = $_GET['new_pseudo'];
} elseif($pseudo_exist == 1) {
	$_SESSION['succes_modif_pseudo'] = 0; // pseudo deja utiliser donc on affiche la popup erreur !
}


J'espère que j'ai bien détaillé, et bien expliqué ! Autrement dit-le moi.

Merci d'avance,
Florian
Salut...
Et ahlalalalala Smiley lol

Ok tu mélanges PHP action côté serveur AVANT d'envoyer le résultat au BROWSER
et JavaScript/JQuery , action côté BROWSER APRES avoir reçu le résultat Smiley smile

VOIlà avec cette simple phrase tu dois déjà comprendre de toi même que tester une session php dans du JS relève du rêve Smiley cligne

.get() te renvoi dans function la variable data, et cette variable data contient ce que ton php que tu appelles va renvoyer en echo ou print...

Donc dans ton cas tu dois renvoyer 0 ou 1 avec un echo dans ta page modi_pseudo.php et tester data dans le js du .get pour savoir ce que tu dois faire Smiley smile

simple, basic Smiley cligne
Merci beaucoup pour cette rapidité !

Donc si je comprends bien dans mon fichier modif_pseudo.php, je dois mettre ma variable dans le data de la fonction .get().

C'est bien ça ? Comment fait-on ceci ?

Merci encore
non tu comprend pas Smiley smile

la var data contient ce que ton php renvoi...
Comme j'ai horreur de faire le code à la place des autres parce que le but c'est de comprendre ce que l'on fait voici un exemple :

$.get("truc.php", function(data){
   if(data == 1){ 
      /// faire un truc
   } else {
     /// faire un autre truc
  }
});


truc.php

echo "1"; // pour tester data == 1
//echo "0"; // pour tester data == 0
Merci beaucoup pchlj !!!!!

Je pensais pas que pour le data, il fallait juste mettre un echo !
Tout fonctionne normalement.

Merci encore, sujet résolut.