Bonjour à tous,
J'ai un souci au niveau de mon code pour la suppression d'une ligne sélectionnée.
En effet, j'aimerais quand je sélectionne une ligne dans mon tableau via une case à cocher d'arriver à la supprimer.
J'aimerais aussi sélectionner plusieurs lignes et les supprimer en même temps. La suppression côté client marche mais côté serveur elle ne fonctionne pas.
Je vous remercie par avance.
Code ci-dessous :
Code html : 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 <div> <a type="button" class="delete">Supprimer</a> </div> <div id="msg"></div> <table> <form method="post" action="delete.php"> <thead> <tr> <th><input type="checkbox" id="head"></th> <th>Name</th> <th>Delete</th> </tr> </thead> <tbody> <?php // connexion à la Bd require_once("db.php"); // requête $sql = "SELECT * FROM cat ORDER BY cat_id DESC"; $req = $db->prepare($sql); $req->execute() or die(print_r($req->errorInfo())); $rows = $req->fetchAll(); foreach($rows as $row) { ?> <tr data-row-id="<?=$row["cat_id"];?>"> <td><input type="checkbox" class="check" data-id="<?=$row["cat_id"];?>"></td> <td><?=$row["cat_name"];?></td> <td><a class="remove" data-id="<?=$row["cat_id"];?>" href="javascript: void(0)"><img src="supprimer.jpg" alt="supprimer"></a></td> </tr> <input type="hidden" name="cat_delete" value="<?=$row["cat_id"];?>"> <?php } ?> </tbody> </form> </table>
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 // js $(document).ready(function(){ $('#head').on('click', function(e) { if($(this).is(':checked', true)) { $(".check").prop('checked', true); } else { $(".check").prop('checked', false); } }); $('.delete').on('click', function(e) { e.preventDefault(); var $this = $(this); var cat_delete = $this.find('[name="cat_delete"]').val(); var all = []; $(".check:checked").each(function() { all.push($(this).attr('data-id')); }); if(all.length <=0) { alert("Veuillez sélectionner une ligne !"); } else { var DELETE = "Voulez-vous vraiment supprimer cette ligne ?"; var check = confirm(DELETE); if(check == true){ $.ajax({ type: "POST", url: "delete.php", cache:false, data: $this.serialize(), beforeSend: function() { $this.after('<img src="loader.gif" alt="loading" id="loading">'); }, success: function(response) { console.log(response); $("#loading").hide(); $("#msg").html(response); } }); $.each(all, function(index, value) { $('table tr').filter("[data-row-id='" + value + "']").remove(); }); } } }); $('.remove').on('click', function(e) { var DELETE = "Voulez-vous vraiment supprimer cette ligne ?"; var check = confirm(DELETE); if(check == true){ $('table tr').filter("[data-row-id='" + $(this).attr('data-id') + "']").remove(); } }); });J'ai le message Erreur ! qui s'affiche en essayant de supprimer une ligne mais quand je fais un
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 // fichier delete.php require_once("db.php"); $cat_delete = $_POST['cat_delete']; if (isset($cat_delete)){ // requête $q = array('cat_delete'=>$cat_delete); $sql = "DELETE FROM cat WHERE cat_id = :cat_delete"; $req = $db->prepare($sql); $req->execute($q) or die(print_r($req->errorInfo())); } else { echo 'Erreur !'; }ça ne me renvoie rien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part print_r($_POST);
Partager