La suppression ne marche pas!
Résolu
delavega470
Messages postés
298
Date d'inscription
Statut
Membre
Dernière intervention
-
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
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
voici script
le code php qui doit s'excuté pour supprimer
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:
- La suppression ne marche pas!
- Forcer la suppression d'un fichier - Guide
- Suppression compte gmail - Guide
- Suppression page word - Guide
- Suppression pub youtube - Accueil - Streaming
- Suppression facebook - Guide
10 réponses
Bonjour,
Ajoute le "error" dans ton ajax
et regarde dans la console de ton navigateur si il n'y a rien qui s'affiche !
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 !
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 
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); } }); });
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:
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
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
Peux tu faire un console.log de la variable reponse et nous montrer ce que ça donne ?
Il faudrait également nous montrer le code de ton fichier delete_note.php
$('#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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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'; } } ?>
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:
Et à remettre le ERROR dans ton code JS...
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....
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....
le message dans la console du navigateur 
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
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

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

Je viens de voir des erreurs dans le code php que je t'avais donné....
ceci devrait corriger le tir
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); ?>
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
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 ?
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 ?