Bonjour, j'ai un gros soucis avec mon code jquery.
J'utilise le plugindialog()pour faire des boites de confirmation (si oui, fait ça, sinon ferme). Le problème, c'est que j'utilise de l'ajax pour transmettre à jquery l'id de la catégorie à supprimer, est faire une vérification avec de l'ajax, si c'est est == à 0 où non. Si, c'est égal à 0, on peut supprimer, sinon, on dit que c'est pas possible.
Mon script marche bien, mais bug à mort. Il y a des problèmes d'id... Voici ma table :
Table SQL :
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 -- -- Structure de la table `groupe_pensionnaires` -- CREATE TABLE IF NOT EXISTS `groupe_pensionnaires` ( `id_groupe_pensionnaires` int(11) NOT NULL AUTO_INCREMENT, `nom_groupe_pensionnaires` varchar(255) NOT NULL, `nombre_animaux_groupe` int(11) NOT NULL, PRIMARY KEY (`id_groupe_pensionnaires`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=8 ; -- -- Contenu de la table `groupe_pensionnaires` -- INSERT INTO `groupe_pensionnaires` (`id_groupe_pensionnaires`, `nom_groupe_pensionnaires`, `nombre_animaux_groupe`) VALUES (1, 'Chevaux', 160), (2, 'Ânes', 20), (3, 'Poneys', 14), (4, 'patate', 6), (5, 'Autres !', 5), (6, 'bidule', 60), (7, 'jeteveplus', 0), (8, 'toiaussi', 0);
On voit bien que l'id 7, contient 0 animaux, dont peut être supprimé.
Tant que le groupe contient des animaux, et ne peut être supprimé, il n'y a pas de problème, mais si il est vide, là ça pose problème.
compte-groupe-animaux.php
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 <?php //Cette fonction doit être appelée avant tout code html session_start(); include("includes/identifiants.php"); if(isset($_POST['id_groupe_pensionnaires']) && !empty($_POST['id_groupe_pensionnaires'])){ $id_du_groupe = (int) $_POST['id_groupe_pensionnaires']; $query=$db->prepare('SELECT nom_groupe_pensionnaires, nombre_animaux_groupe FROM groupe_pensionnaires WHERE id_groupe_pensionnaires = "'.$id_du_groupe.'"'); $query->execute(); $donnees = $query->fetch(); if($donnees['nombre_animaux_groupe'] == 0){ ?> <div id="pas_animaux_dans_groupe" title="Supprimer ce groupe" style="display:none;">Êtes vous vraiment sûr de vouloir supprimer ce groupe <u><?php echo $donnees['nom_groupe_pensionnaires'];?></u> ?</div> <?php } if($donnees['nombre_animaux_groupe'] > 0){ ?> <div id="animaux_dans_groupe" title="Peux pas !!" style="display:none;">Il y a <?php echo $donnees['nombre_animaux_groupe'];?> animaux dans ce groupe. Opération annulée.</div> <?php } } ?>
Dès que la div #pas_animaux_dans_groupe s'ouvre dans la boite de dialogue, elle s'ouvrira désormais pour toutes les autres catégorie, même si il contient des animaux. En faites, d'après ce que j'ai compris, c'est que si on clic sur l'id 7, la div comprenant : Êtes vous vraiment sûr de vouloir supprimer ce groupe jeteveplus ? s'ouvre désormais pour touts les autres id même comprenant des animaux, et suivis pas la div par exemple : Il y a 6 animaux dans ce groupe. Opération annulée. car, il y a des animaux, et ne peut être supprimer.
C'est très difficile à expliquer, espérant que vous compreniez quelque chose.
Script jquery :
supprimer-groupe.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96 //Supprimer un groupe d'animaux $('a.supprimer-groupe').click(function(e){ e.preventDefault(); // annule l'effet du lien pour pas recharger la page var id = $(this).attr("rel"); // on recupere l'id //Confirmation de suppression $( "#confirm_supprimer_nom_groupe" ).dialog({ //1ere boite width : 530, draggable: false, resizable: false, closeOnEscape: false, modal: true, buttons: { "Oui": function() { //Si on clic sur "oui" $.ajax({ type: "POST", url: "compte-groupe-animaux.php", data: "id_groupe_pensionnaires="+id, error: function(){ $(".error_message").text("Une erreur est survenue pendant la requete"); $(".error_message").css("background", "red"); }, success: function(data){ document.getElementById('result').innerHTML= data; //Imbrication des boites //Animaux dans groupe $( "#animaux_dans_groupe" ).dialog({ width : 530, draggable: false, resizable: false, closeOnEscape: false, modal: true, buttons: { "Annuler": function() { $( this ).dialog( "close" ); $( "#confirm_supprimer_nom_groupe" ).dialog( "close" ); $( "#pas_animaux_dans_groupe" ).dialog( "close" ); } } }); //Pas animaux dans groupe => Peut supprimer $( "#pas_animaux_dans_groupe" ).dialog({ width : 600, draggable: false, resizable: false, closeOnEscape: false, modal: true, buttons: { "Oui": function() { //ajax 1 ? $.ajax({ type: "POST", url: "supprimer-groupe-pensionnaire-ok.php", data: "id_groupe_pensionnaires="+id, error: function(){ $(".error_message").text("Une erreur est survenue pendant la supression du groupe"); $(".error_message").css("background", "red"); }, success: function(data){ $("#ligne_"+id).fadeOut("slow"); document.getElementById('result').innerHTML= data; } }); $( "#confirm_supprimer_nom_groupe" ).dialog( "close" ); $( "#animaux_dans_groupe" ).dialog( "close" ); $( this ).dialog( "close" ); }, "Non": function() { $( this ).dialog( "close" ); $( "#confirm_supprimer_nom_groupe" ).dialog( "close" ); $("body").css({ overflow: 'visible' }); } } }); //Fin } }); }, "Non": function() { $( this ).dialog( "close" ); } } }); });
(page qui contient le tableaux des catégories à supprimer)
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 <div id="corps_administration"> <table> <tr> <th class="centre">N°</th> <th>Supprimer</th> <th class="centre">Nbr Animaux</th> <th class="centre">Action</th> </tr> <?php $query=$db->prepare(' SELECT id_groupe_pensionnaires, nom_groupe_pensionnaires, nombre_animaux_groupe FROM groupe_pensionnaires'); $query->execute(); while($donnees = $query->fetch()){ ?> <tr id="ligne_<?php echo $donnees['id_groupe_pensionnaires']; ?>"> <td class="centre"><?php echo (int) $donnees['id_groupe_pensionnaires'];?></td> <td class="titre_modifier_nouvelle"><?php echo $donnees['nom_groupe_pensionnaires'];?></td> <td class="centre"><?php echo $donnees['nombre_animaux_groupe'];?></td> <td class="centre"><a href="#" class="supprimer-groupe" rel="<?php echo (int) $donnees['id_groupe_pensionnaires'];?>">Supprimer</a></td> </tr> <?php } ?> </table> <div class="error_message"></div> <div id="result"></div> <div id="confirm_supprimer_nom_groupe" title="Confirmation" style="display:none;">Êtes vous sur de vouloir supprimer ce groupe ?</div> </div>
supprimer-groupe-ok.php :
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 <?php //Cette fonction doit être appelée avant tout code html session_start(); include("includes/identifiants.php"); if(isset($_POST['id_groupe_pensionnaires']) && !empty($_POST['id_groupe_pensionnaires'])){ $id_groupe_pensionnaires = (int) $_POST['id_groupe_pensionnaires']; // $query=$db->prepare('DELETE FROM groupe_pensionnaires WHERE id_groupe_pensionnaires = :id_groupe_pensionnaires'); // $query->bindValue(':id_groupe_pensionnaires',$id_groupe_pensionnaires,PDO::PARAM_INT); // $query->execute(); // $query->CloseCursor(); //Volontairement désactiver. ?> <div class='success'>Le groupe à bien été supprimé.</div> <?php } //test else { ?> <div class='error'>Le groupe n'a pas pu être supprimée.</div> <?php } ?>
J'y ai tous mis... si vous pouvez trouver les problèmes... car, là je suis au bord du suicide !!!
Je ne comprends plus rien. J'ai recommencer, et recommencer différemment, rien du tout. Je m'en retourne, donc vers vous.
Merci à tous![]()
Partager