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 :
Modifié par dinolam (29 Mar 2017 - 11:25)
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 :
<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>
// 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();
}
});
});
// 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()));
}
Modifié par dinolam (29 Mar 2017 - 11:25)