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
36054
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
14 août 2022
- 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
A voir également:

3 réponses

jordane45
Messages postés
36054
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
14 août 2022
4 276
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
36054
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
14 août 2022
4 276
29 mai 2016 à 22:41
Ben je t'ai tout donné. ..
y'a plus qu'à
..
0
BlaBiks
Messages postés
22
Date d'inscription
mercredi 25 mai 2016
Statut
Membre
Dernière intervention
1 juin 2016

31 mai 2016 à 16:06
J'arrive pas à adapter ton code au mien, je vais pas faire plusieurs fichiers pour chaque fonction hum, mais j'ai trouvé une autre solution, merci à toi ! :)
0
jordane45
Messages postés
36054
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
14 août 2022
4 276 > BlaBiks
Messages postés
22
Date d'inscription
mercredi 25 mai 2016
Statut
Membre
Dernière intervention
1 juin 2016

31 mai 2016 à 16:32

je vais pas faire plusieurs fichiers pour chaque fonction hum

Non tu peux très bien ne faire qu'un seul fichier..... mais dans lequel tu passes des paramètres pour choisir le code que tu veux effectuer....( A l'aide d'un IF ou d'un SWITCH CASE )
0
BlaBiks
Messages postés
22
Date d'inscription
mercredi 25 mai 2016
Statut
Membre
Dernière intervention
1 juin 2016

31 mai 2016 à 16:47
D'acc, j'y penserai pour les prochaines fois ;)
0