La suppression ne marche pas!

Résolu/Fermé
delavega470 Messages postés 298 Date d'inscription dimanche 9 février 2014 Statut Membre Dernière intervention 24 mars 2020 - 19 mars 2020 à 07:19
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 - 24 mars 2020 à 23:45
bonjour à tous je tente de supprimer des éléments dans ma base de donnée avec la méthode ajax ça ne marche pas
quand je clique sur supprimer rien ne se passe.
Pourriez vous me donner un coup de main svp

voici le code
<div class="uk-grid uk-grid-collapse" data-uk-grid-margin>
                    <div class="uk-width-large-3-10 hidden-print uk-visible-large">
                        <div class="md-list-outside-wrapper">
                            <ul class="md-list md-list-outside notes_list" id="notes_list">
            
                                <li class="heading_list uk-text-danger">Notes Importantes</li>
                              <?php 
                             while ($donneeN=$envoiN->fetch()){ ?>
                                <li>
                                    <a href="#" class="md-list-content" data-note-id="<?php echo $donneeN['libelle']; ?>">
                                        <span class="md-list-heading uk-text-truncate"><?php echo $donneeN['titre']; ?></span>
                                        <input name="note_id" id="noteid" class="md-list-head uk-text-truncate" type="hidden" placeholder="<?php echo $donneeN['id']; ?>" />
                                        <span class="md-list-head uk-text-truncate" hidden="">
                                            <?php echo $donneeN['id']; ?>
                                                
                                            </span>
                                         <span class="uk-text-small uk-text-muted"></br><?php echo $donneeN['datec']; ?>
                        
                                         </span>
                                         
                                    </a>
                                </li>
                                 <?php  } ?>
                            </ul>
                        </div>
                    </div>
                    <div class="uk-width-large-7-10">
                        <div class="md-card md-card-single">
                            <form method="POST" action="../traitement/add_note.php" enctype="multipart/form-data">
                                <div class="md-card-toolbar hidden-print">
                                    <div class="md-card-toolbar-actions">
                                        <button type="submit" class="md-btn md-btn-success md-btn-wave-light waves-effect waves-button waves-light" href=""><i class="md-icon material-icons"></i></button>
                                        <div class="md-card-dropdown" data-uk-dropdown="{pos:'bottom-right'}">
                                            <i class="md-icon material-icons"></i>
                                            <div class="uk-dropdown uk-dropdown-small">
                                                <ul class="uk-nav">
                                                    <li><a id="supprimer" >
                                                        <i class="material-icons uk-margin-small-right" ></i>supprimer</a></li>
                                                </ul>
                                            </div>
                                        </div>
                                    </div>
                                    <input name="note_title" id="note_title" class="md-card-toolbar-input" type="text" placeholder="Ajouter un titre" />
                                
                                    <input name="note_id" id="note_id" class="md-card-toolbar-input" type="hidden" placeholder="" />
                                </div>
                                <div class="md-card-content">
                                    <textarea name="note_content" id="note_content"  class="md-input" cols="30" rows="12" placeholder="Ajouter une note"></textarea>
                                </div>
                        </div>
                            </form>
                        </div>
                    </div>
                </div>

            </div>

        </div>


voici script
<script>
 
       $('#supprimer').click(function(){
          var note_id  = $('#note_id').val(); 
 
          $.ajax({
              url      : "../traitement/delete_note.php",
              method   : "post", 
              data     : {note_id: note_id},
              success  : function(reponse){
                             //alert(note_id);
 
                         }
          });
       });
  });
</script>


le code php qui doit s'excuté pour supprimer

 <?php  
if(isset($_POST['note_id'])){
 
	$note_id = $_POST['note_id'];

  require "../../inc/bd_con.php";
	
	$result = $db->prepare("DELETE FROM note WHERE id='$note_id'");
	$result->execute();
	if($result){
		echo 'data supprimer';
	        }

}
?>
A voir également:

10 réponses

jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
Modifié le 23 mars 2020 à 09:48
Bonjour,

Ajoute le "error" dans ton ajax
$.ajax({
              url      : "../traitement/delete_note.php",
              method   : "post", 
              data     : {note_id: note_id},
              success  : function(reponse){
                             //alert(note_id); 
                   console.log('Suppression OK',note_id);
                },
               error: function (jqXHR, textStatus, errorThrown) { 
                    console.log('error ajax',qXHR, textStatus,);
                }
 });



et regarde dans la console de ton navigateur si il n'y a rien qui s'affiche !

0
delavega470 Messages postés 298 Date d'inscription dimanche 9 février 2014 Statut Membre Dernière intervention 24 mars 2020 48
21 mars 2020 à 04:13
je vois pas mal de msg d'error qui s'affiche
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
21 mars 2020 à 08:11
Et ben.. si tu ne nous dis pas lesquels on ne pourra rien pour toi....
0
delavega470 Messages postés 298 Date d'inscription dimanche 9 février 2014 Statut Membre Dernière intervention 24 mars 2020 48
Modifié le 23 mars 2020 à 00:54
quand je vais dans la partie console du navigateur voici les messages d'erreur. quand je clique sur le bouton pour supprimer rien ne se produit, rien ne s'affiche
0
delavega470 Messages postés 298 Date d'inscription dimanche 9 février 2014 Statut Membre Dernière intervention 24 mars 2020 48
Modifié le 23 mars 2020 à 00:53
quand je fais ce code ci le message alert s'affiche avec l'id mais ne supprime rien du tout

   $('#supprimer').click(function(){
          var note_id  = $('#note_id').val(); 
 
          $.ajax({
              url      : '../traitement/delete_note.php',
              method   : 'post', 
              data     : {note_id: note_id},
              success  : function(reponse){
                      
                         alert(note_id);
                            } 
          });
       });
0
Salut,
normal JavaScript fonctionne (j suppose que vous avez corrigé vos erreurs pour cela) sur l'ordinateur client(la personne qui affiche le site) et la base de données est sur le serveur.

AJAX fait un pont entre les 2 en utilisant des (fichiers de)métadonnées en XML, CSV, JSON...etc... de façon asynchrone(les requêtes serveurs sont faites en amont de leur utilisation pour les fournir de façon préparées quand on en a besoin.

C'est ici que ça se passe si vous voulez fonctionner sur le serveur et à fortiori envoyer une requête à la base de données:

 url      : '../traitement/delete_note.php',


Je veut dire dans le fichier PHP qui est indiqué.

Pour plus d'informations sur le langage de bases de données que PHP permet d'envoyer via PDO:

https://fr.wikipedia.org/wiki/Structured_Query_Language
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
23 mars 2020 à 09:50
Peux tu faire un console.log de la variable reponse et nous montrer ce que ça donne ?
  $('#supprimer').click(function(){
          var note_id  = $('#note_id').val(); 
 
          $.ajax({
              url      : '../traitement/delete_note.php',
              method   : 'post', 
              data     : {note_id: note_id},
              success  : function(reponse){
                     console.log("reponse ajax",reponse);
                    alert(note_id);
               } 
          });
       });

Il faudrait également nous montrer le code de ton fichier delete_note.php
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
delavega470 Messages postés 298 Date d'inscription dimanche 9 février 2014 Statut Membre Dernière intervention 24 mars 2020 48
23 mars 2020 à 18:21
l'id s'affiche met la suppression ne s'effectue pas
0
delavega470 Messages postés 298 Date d'inscription dimanche 9 février 2014 Statut Membre Dernière intervention 24 mars 2020 48
23 mars 2020 à 18:23
delete_note.php

<?php 
if(isset($_POST['note_id'])){
 
	$note_id = $_POST['note_id'];

  require "../../inc/bd_con.php";
	
	$result = $bd->prepare("DELETE FROM note WHERE id='$note_id' ");
	$result->execute();
	if($result){
		echo 'data supprimer';
	        }

}
?>
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
23 mars 2020 à 19:19
Je t'ai demandé de nous montrer ce que t'affiche la console de ton navigateur..........
Où est-ce ????

Concernant ton PHP, je t'invite lire ET à appliquer les conseils suivants :
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code


Et donc.. à le modifier comme ceci:
<?php 
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);

//bdd
require_once "../../inc/bd_con.php";

//récupération PROPRE des variables AVANT de les utiliser
$note_id = !empty($_POST['note_id']) ? $_POST['note_id'] : NULL;
$result = null;
if($note_id){
  $sql = "DELETE FROM note WHERE id=:note_id ";
  $datas = array(':note_id'=>$note_id);
  try{
    $result = $bd->prepare($sql);
    $result->execute();
	if($result){
	  $result = 'note supprimée';
	}
   }catch(Exception $e){
     $result = "Erreur " . $e->getMessage();
   }
}

echo json_encode($result);
?>


Et à remettre le ERROR dans ton code JS...
$.ajax({
              url      : "../traitement/delete_note.php",
              method   : "post", 
              data     : {note_id: note_id},
              success  : function(reponse){
                    console.log("reponse ajax",reponse);
                    alert(note_id); 
                },
               error: function (jqXHR, textStatus, errorThrown) { 
                    console.log('error ajax',jqXHR, textStatus,);
                    alert('ERREUR ! Merci de consulter la console pour voir le souci');
                }
 });



Bien entendu, quand tu dis que la suppression ne se fait pas... tu parles bien DANS LA BDD ?
Car si c'est "juste" visuellement sur la page, c'est normal vu que tu n'as rien codé dans ce sens....

0
delavega470 Messages postés 298 Date d'inscription dimanche 9 février 2014 Statut Membre Dernière intervention 24 mars 2020 48
24 mars 2020 à 07:39
le message dans la console du navigateur
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
24 mars 2020 à 07:43
Et bien...
Il semble qu'il te faille déjà corriger ces différentes erreurs javascript...

De plus Je ne vois pas l'appel à l'Ajax.
As tu cliqué sur le bouton pour supprimer ?
As tu activé le debugage xhr dans la console ?
0
delavega470 Messages postés 298 Date d'inscription dimanche 9 février 2014 Statut Membre Dernière intervention 24 mars 2020 48 > jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024
24 mars 2020 à 18:09
hoo je viens de voir dans la console
0
delavega470 Messages postés 298 Date d'inscription dimanche 9 février 2014 Statut Membre Dernière intervention 24 mars 2020 48 > jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024
24 mars 2020 à 18:11
c'est donc la requête sql ou il y'a un souci
0
delavega470 Messages postés 298 Date d'inscription dimanche 9 février 2014 Statut Membre Dernière intervention 24 mars 2020 48 > jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024
24 mars 2020 à 18:19
j'ai cliqué sur debogueur dans le navigateur et j'ai ce messae "
reponse ajax "Erreur SQLSTATE[HY093]: Invalid parameter number: no parameters were bound" "
0
delavega470 Messages postés 298 Date d'inscription dimanche 9 février 2014 Statut Membre Dernière intervention 24 mars 2020 48
24 mars 2020 à 07:42
j'ai modifié le code delecte_note.php et celui du script ajax mais la suppression ne s'effectue toujours pas j'ai juste le message alert avec l 'id
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
24 mars 2020 à 18:21
Et qu'as tu modifié ?
Si tu ne nous le montres pas... ça va être compliqué de t'aider.
De plus, j'aimerai assez que tu nous montres une capture de la console javascript de ton navigateur lorsque tu cliques sur le "supprimer"...

De préférence, utiliser Firefox pour faire tes tests.
La console (au niveau ajax) est plus pratique.
Il faudra déplier la petite fleche qui se trouve devant la ligne de ton appel ajax et nous montrer le contenu de l'onglet Paramètres et de l'onglet reponse


0
delavega470 Messages postés 298 Date d'inscription dimanche 9 février 2014 Statut Membre Dernière intervention 24 mars 2020 48 > jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024
24 mars 2020 à 18:52
voici limage quand je clique sur "supprimer" , j'ai modifié le script en mettant ce que vous m'aviez envoyé
0
delavega470 Messages postés 298 Date d'inscription dimanche 9 février 2014 Statut Membre Dernière intervention 24 mars 2020 48 > jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024
24 mars 2020 à 18:53
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650 > delavega470 Messages postés 298 Date d'inscription dimanche 9 février 2014 Statut Membre Dernière intervention 24 mars 2020
24 mars 2020 à 19:01
Ajoute le datatype dans ton ajax stp
dataType: "json"
0
delavega470 Messages postés 298 Date d'inscription dimanche 9 février 2014 Statut Membre Dernière intervention 24 mars 2020 48 > jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024
24 mars 2020 à 19:16
 $('#supprimer').click(function(){
          var note_id  = $('#note_id').val(); 
 
          $.ajax({
              url      : "../traitement/delete_note.php",
              method   : "post",
              dataType : "json", 
              data     : {note_id: note_id},

              success  : function(reponse){
                     console.log("reponse ajax",reponse);
                    alert(note_id);
               } 
          });
       });





0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
Modifié le 24 mars 2020 à 20:50
Je viens de voir des erreurs dans le code php que je t'avais donné....

ceci devrait corriger le tir
<?php 
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);

//bdd
require_once "../../inc/bd_con.php";

//récupération PROPRE des variables AVANT de les utiliser
$note_id = !empty($_POST['note_id']) ? $_POST['note_id'] : NULL;
$result = array();
$result['DEBUG'] = $_POST;

if($note_id){
  $sql = "DELETE FROM note WHERE id=:note_id ";
  $datas = array(':note_id'=>$note_id);
  try{
    $prep = $bd->prepare($sql);
    $res = $prep->execute($datas);
     if($res){
      $result['SUCCESS'] = 'note supprimée';
     }
  }catch(Exception $e){
     $result['ERROR'] = "Erreur " . $e->getMessage();
  }
}else{
  $result['ERROR'] = 'note_id Null ou inconnu !';
}

echo json_encode($result);
?>


0
delavega470 Messages postés 298 Date d'inscription dimanche 9 février 2014 Statut Membre Dernière intervention 24 mars 2020 48
24 mars 2020 à 22:08


la note ne se supprime pas en base de donnée tjrs....
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650 > delavega470 Messages postés 298 Date d'inscription dimanche 9 février 2014 Statut Membre Dernière intervention 24 mars 2020
24 mars 2020 à 22:19
Moi ce qui m'étonne .. ce sont les \n que tu as autour de ton id ...
A la limite, déjà pour limiter les soucis, tu peux modifier le code comme ceci
$note_id = !empty($_POST['note_id']) ? intval($_POST['note_id']) : NULL;


Il serait bien également de t'assurer que tes fichiers sont bien encodés en utf8 sans BOM ( voir chapitre 1 de ce lien )
https://forums.commentcamarche.net/forum/affich-37584944-php-html-caracteres-accentues-et-l-utf8

Après.. le script ne remontant plus d'erreur....il n'y a plus aucune raison pour que ça ne fonctionne pas.
Peux tu nous faire un DUMP (structure + données ) de ta table note ?
0
delavega470 Messages postés 298 Date d'inscription dimanche 9 février 2014 Statut Membre Dernière intervention 24 mars 2020 48 > jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024
24 mars 2020 à 22:39
$note_id = !empty($_POST['note_id']) ? intval($_POST['note_id']) : NULL;
j'ai ajouté intval() et c'est passé merci beaucoup
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650 > delavega470 Messages postés 298 Date d'inscription dimanche 9 février 2014 Statut Membre Dernière intervention 24 mars 2020
24 mars 2020 à 23:45
Alors mets le sujet en résolu.

Mais bon.. ça n'empeche pas qu'il n'est pas normal que tu aies des \n autour de ton ID envoyé en ajax...
0