Utilisateur anonyme
-
Modifié le 29 mars 2017 à 11:34
jordane45
Messages postés37291Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention31 mars 2023
-
30 mars 2017 à 17:06
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.
if(all.length <=0) { alert("Veuillez sélectionner une ligne !"); } else { var DELETE = "Voulez-vous vraiment supprimer cette ligne ?"; var check = confirm(DELETE);
Merci encore pour ta contribution.
En faisant ceci dans mon code :
// 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 !'; }
J'ai l'erreur qui s'affiche mais un
print_r($_POST);
ne me revoie rien.
Cordialement,
jordane45
Messages postés37291Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention31 mars 2023341 29 mars 2017 à 18:52
J'ai l'erreur qui s'affiche
Quelle erreur ?
mais un print_r($_POST); ne me revoie rien
Ca te retourne au moins un ARRAY vide non ?
Comment "vérifies" tu ? Dans quel écran ?
=> Il faut regarder dans la console du navigateur au niveau de la requete ajax....
... pour ce qui est du PHP ... je te laisse réflechir (mais.. petit indice : BOUCLE )
Utilisateur anonyme
>
jordane45
Messages postés37291Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention31 mars 2023 30 mars 2017 à 09:58
Tu compliques trop les choses et tu tournes autour.
Ce que je cherche à comprendre c'est juste la manière de récupérer mon tableau en php.
jordane45
Messages postés37291Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention31 mars 2023341
>
Utilisateur anonyme
30 mars 2017 à 11:07
Tu crois que je t'ai donné quoi comme code ????
Tu l'as testé au moins ?
Utilisateur anonyme
>
jordane45
Messages postés37291Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention31 mars 2023 Modifié le 30 mars 2017 à 11:22
Je l'ai testé mais je n'ai rien comme résultat à part cette : TypeError: b is undefined
.........
var elm = $(this).find('[name="cat_delete"]').val(); var all = [];
if (isset($ref)){ foreach ($ref as $val) { $q = array('ref'=>$val); $sql = "DELETE FROM cat WHERE cat_id = :ref"; $req = $db->prepare($sql); $req->execute($q) or die(print_r($req->errorInfo())); } } else { echo 'erreur !'; }
jordane45
Messages postés37291Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention31 mars 2023341
>
Utilisateur anonyme
30 mars 2017 à 14:48
Pourrais tu, le temps des tests .. modifier ton fichier php (delete.php) pour n'y mettre QUE ceci :
print_r($_POST);
et nous dire ce que ça te retourne dans la console ?
Car j'ai testé chez moi... et ça fonctionne parfaitement.
Un autre petit souci ce que je n'arrive pas à supprimer plusieurs lignes sélectionnées en même temps. Si j'essaye de le faire voici l'erreur que ça m'affiche : Conversion failed when converting the varchar value '6,5' to data type int.
jordane45
Messages postés37291Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention31 mars 2023341 30 mars 2017 à 17:00
il faut que tu transformes cette liste en ARRAY, puis que dans ton code php tu BOUCLES dessus (comme je te l'avais indiqué dans un précédent message)
jordane45
Messages postés37291Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention31 mars 2023341 30 mars 2017 à 17:06
Tu aurais pu laisser le JSON.stringify
par contre côté PHP tu devais, pour récupérer ta variable en ARRAY faire :
<?php
//récupération de la variable POST
$elmarr = !empty($_POST['elm']) ? $_POST['elm'] : NULL;
//transformation en ARRAY
$arr_elm = json_decode(stripslashes($elmarr));
//boucle dessus
$result = 'ok';
foreach($arr_elm as $val){
$q = array(':ref'=>$val);
$sql = "DELETE FROM cat WHERE cat_id = :ref";
try{
$req = $db->prepare($sql);
$req->execute($q) ;
}catch(Exception $e){
//voila comment on gere les erreurs en PDO
$result = "Error ! ".$e->getMessage();
}
}
//renvoie des données en JSON vers le javascript
echo json_encode($result);
?>