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   -
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 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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   Statut Membre Dernière intervention   48
 
je vois pas mal de msg d'error qui s'affiche
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Et ben.. si tu ne nous dis pas lesquels on ne pourra rien pour toi....
0
delavega470 Messages postés 298 Date d'inscription   Statut Membre Dernière intervention   48
 
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   Statut Membre Dernière intervention   48
 
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
Gourou
 
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 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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   Statut Membre Dernière intervention   48
 
l'id s'affiche met la suppression ne s'effectue pas
0
delavega470 Messages postés 298 Date d'inscription   Statut Membre Dernière intervention   48
 
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 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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   Statut Membre Dernière intervention   48
 
le message dans la console du navigateur
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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   Statut Membre Dernière intervention   48 > jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention  
 
hoo je viens de voir dans la console
0
delavega470 Messages postés 298 Date d'inscription   Statut Membre Dernière intervention   48 > jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention  
 
c'est donc la requête sql ou il y'a un souci
0
delavega470 Messages postés 298 Date d'inscription   Statut Membre Dernière intervention   48 > jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention  
 
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   Statut Membre Dernière intervention   48
 
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 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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   Statut Membre Dernière intervention   48 > jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention  
 
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   Statut Membre Dernière intervention   48 > jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention  
 
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752 > delavega470 Messages postés 298 Date d'inscription   Statut Membre Dernière intervention  
 
Ajoute le datatype dans ton ajax stp
dataType: "json"
0
delavega470 Messages postés 298 Date d'inscription   Statut Membre Dernière intervention   48 > jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention  
 
 $('#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 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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   Statut Membre Dernière intervention   48
 


la note ne se supprime pas en base de donnée tjrs....
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752 > delavega470 Messages postés 298 Date d'inscription   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   48 > jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention  
 
$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 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752 > delavega470 Messages postés 298 Date d'inscription   Statut Membre Dernière intervention  
 
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