Afficher un message d'erreur avec l'Ajax

Résolu
BlaBiks Messages postés 22 Date d'inscription   Statut Membre Dernière intervention   -  
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   -
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 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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   Statut Membre Dernière intervention  
 
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 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Ben je t'ai tout donné. ..
y'a plus qu'à
..
0
BlaBiks Messages postés 22 Date d'inscription   Statut Membre Dernière intervention  
 
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 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752 > BlaBiks Messages postés 22 Date d'inscription   Statut Membre Dernière intervention  
 

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   Statut Membre Dernière intervention  
 
D'acc, j'y penserai pour les prochaines fois ;)
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Bonjour,

Sans voir ton code ... IMPOSSIBLE de t'aider.
Par contre... tu parles de faire un echo.... mais.... en ajax.. c'est avec le JAVASCRIPT que tu affiches les informations....

Pour ce qui est d'avoir un exemple d'ajax, en voici un (qui utilise JQUERY) : https://forums.commentcamarche.net/forum/affich-33258760-remplir-un-formulaire-dynamiquement-en-fonction-d-une-combobox#2
0
BlaBiks Messages postés 22 Date d'inscription   Statut Membre Dernière intervention  
 
Je sais que echo est en PHP lol, j'affichais des messages d'erreurs en PHP vu que la page se rafraîchissait, vu qu'elle ne se rafraîchie plus il faut que je fasse une requête Ajax (je pense) pour afficher le message d'erreur, mais l'Ajax et moi ça fait 2 c'est donc pour ça que je viens vous demander de l'aide. :)
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Je te le redis. .. SANS VOIR TON CODE. .. IMPOSSIBLE DE T'AIDER
0
BlaBiks Messages postés 22 Date d'inscription   Statut Membre Dernière intervention  
 
Mais que veux-tu voir ? Il y a que ça qui peut t'être utile https://prnt.sc/b9rbx9 ..
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Ben et toi... que veux tu qu'on te dise de plus ?
0
BlaBiks Messages postés 22 Date d'inscription   Statut Membre Dernière intervention  
 
Mais OMG dis moi ce qu'il faut au lieu de tourner autour du pot ..
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Peux tu, comme je te l'ai déjà demandé, COLLER le code directement sur le forum au lieu d'en mettre des images ?
(les deux-mêmes bouts de code ça ira).
Par contre... quelle genre d'erreur veux tu pouvoir afficher ? Je ne trouve pas de correspondance entre l'exemple donné ( le grade = administrateur...) et les deux bouts de code que tu viens de nous donner...
0
BlaBiks Messages postés 22 Date d'inscription   Statut Membre Dernière intervention  
 
c
0