Afficher un message d'erreur avec l'Ajax

Résolu/Fermé
BlaBiks Messages postés 22 Date d'inscription mercredi 25 mai 2016 Statut Membre Dernière intervention 1 juin 2016 - 28 mai 2016 à 17:21
jordane45 Messages postés 38037 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 février 2024 - 1 juin 2016 à 21:58
Salut à tous,

J'ai une petite question en Ajax, j'ai fais un chat qui envoie les messages en Ajax à mon document send.php

Mais le soucis c'est que je ne peux plus afficher les messages d'erreur avec echo "..."; puisque la page ne se rafraîchie plus, j'aimerai donc savoir comment faire pour afficher les messages d'erreurs, on m'a dit de faire une requête Ajax mais je gère pas du tout ça, merci à vous, je précise aussi que je ne peux pas vérifier en jQuery si tout est bon puisque j'ai pas mal de fonctionnalités dessus

3 réponses

jordane45 Messages postés 38037 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 février 2024 4 621
Modifié par jordane45 le 29/05/2016 à 22:05
Mieux..

Par contre :
Le premier code js ... (utilisé avec le second code (php)) sert à ajouter des messages en BDD... ok.

Mais ton troisième code ... celui que tu veux pouvoir visiblement utiliser en ajax .... comment est-il déclenché ?
Lors de l'appuie sur un bouton ?
Dans ce cas, li va falloir que tu mettes un ONCLICK sur ce bouton (au lieu de faire un submit) pour appeller une fonction javascript qui ira, en ajax, faire appel à un fichier php contenant le script suivant :
  <?php
 //Affichage des erreurs php
 error_reporting(E_ALL);
 
       // Ne pas oublier d'inclure ton fichier de connexion à la bdd
       require_once 'cnxBdd.php';

 //récupération propre des variables
 $users = isset($ban['1']) ?  trim(addslashes($ban['1']) : NULL;
 
 $result = array(); //Initialisation de la variable de sortie
 
 if($users){
  
  $sql = 'SELECT * FROM users WHERE username = :username';
  $datas = array(':username' => stripslashes($users));
  try{
    $infoUsersReq = $db->prepare($sql);
    $infoUsersReq->execute($datas);
    $infoUsers = $infoUsersReq->fetch();
  }catch(Exception $e){
    //en cas d'erreur dans la requete
    $result['error'] = $e->getMessage();
  }
  
  if($infoUsers){
    if($username != $infoUsers['username']) {
      if($infoUsers['grade'] != 'administrateur') {
        if($infoUsers['chatban'] == '0'){
          $banUsersChatReq = $db->prepare('...');
          $banUsersChatReq->execute(array(...));
                    // ICI ON CHANGE LE STATUT DU MEMBRE POUR LE BANNIR
        } else {
          $result['message'] = "Le membre est déjà banni !";
        }
      } else{
        $result['message'] =  "Vous ne pouvez pas bannir un administrateur !";
      }
    } else{
      $result['message'] =  "Vous ne pouvez pas vous bannir !";
    }
  } else {
    $result['message'] =  "Le membre n'existe pas !";
  }
 }
 
 //On converti en JSON pour pouvoir l'utiliser dans le javascript
 echo json_encode($result);



Côté javascript ajax

function ban(user){
  // les données à transmettre au script ajax php
  var data = {user:user}; 
  //appel ajax
  $.ajax({ 
        type: "POST",
        url: urlAjx,
        data: data,
        async: async,
        dataType: "json",
        success: function(reponse){
           // reponse est un objet json contenant les infos retournées par la page php
           console.log(reponse); //affiche le résultat dans la console du navigateur.
           var error = (typeof(reponse.error) !='undefined' && reponse.error!=null) ? reponse.error : null;
           if(error){
             alert("Erreur lors de l'exécution de la requete ! " + error);
           }
           var message =  (typeof(reponse.message) !='undefined' && reponse.message!=null) ? reponse.message : null;
           if(message){
             alert(message); 
           }
         },
        error:function(jqXHR, textStatus){
             alert('error');
             console.log(jqXHR); //affichage dans la console du navigateur              
        }
   }); 
}
1
BlaBiks Messages postés 22 Date d'inscription mercredi 25 mai 2016 Statut Membre Dernière intervention 1 juin 2016
29 mai 2016 à 22:28
Je n'ai aucun autre code Ajax qui récupère le message d'erreur, c'est justement ça que je sais pas faire ^^

et j'essaie d'adapter ça demain :)
0
jordane45 Messages postés 38037 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 février 2024 4 621
29 mai 2016 à 22:41
Ben je t'ai tout donné. ..
y'a plus qu'à
..
0