Page 1 sur 1
Supression de checkbox via POST
Posté : 11 juin 2006, 16:39
par agité
j'ai fais le script suivant ;
<?php
require("connect.php");
if (isset($_POST['list']))
{
foreach ($_POST['list'] as $list)
{
$sql = "DELETE FROM `messagerie` WHERE id='".$list."' ";
$exec = mysql_query($sql) or die ("erreur ".mysql_error());
if ($exec != false)
{
echo "Tout les message ".$id_client." ont été supprimer";
}
}
}else{
echo "aucun message selectionné";
}
?>
mais il m'indique que :
Code : Tout sélectionner
Warning: Invalid argument supplied for foreach() in C:\www\delmail.php on line 7
Pourtant si $_POST['list'] etait inexistant il ne passerais pas dans la premier boucle non ?
Posté : 11 juin 2006, 17:20
par Cyrano
As-tu essayé de faire afficher $_POST['list'] histoire de vérifier ce que contient ta variable ?
Posté : 11 juin 2006, 17:24
par agité
Oui il me retourne bien la premiere id de la liste et le supprime sans soucis par contre quand c'est a choix multiple je voudrais tout supprimer d'un coup c'est pour ca que j'utilise foreach().
Tout semble pourtant correct au niveau des variables en tout cas, une idée ?
Posté : 11 juin 2006, 17:27
par agité
par exemple :
<?php
require("connect.php");
if (isset($_POST['list']))
{
$sql = "DELETE FROM `messagerie` WHERE id='".$_POST['list']."' ";
$exec = mysql_query($sql) or die ("erreur ".mysql_error());
if ($exec != false)
{
echo "Tout les message ".$_POST['list']." ont été supprimer";
}
}else{
echo "aucun message selectionné";
}
?>
Marche sans soucis et je ne comprends pas comment supprimer la totalité , j'ai tenter de faire un tableau en vain et je pense pas que ce soit la meilleur solution.
Posté : 11 juin 2006, 17:30
par Cyrano
Peut-être bien parce que ta variable n'est pas un tableau, qu'est-ce que tu en penses. Quand je te suggère de faire afficher ta variable, j'attends quand même que tu montres le résultat obtenu. Fais une sélection multiple et fais afficher.
Posté : 11 juin 2006, 17:37
par agité
Le resultat obtenu est bien la derniere valeur qu'il faut supprimer mais pas la totalité !
Je n'avais pas compris qu'il fallait mettre en fait un tableau precedemment, finalement j'ai fais ca :
<?php
require("connect.php");
if (isset($_POST['list']))
{
$array = array($_POST['list']);
foreach ($array as $list)
{
$sql = "DELETE FROM `messagerie` WHERE id='".$list."' ";
$exec = mysql_query($sql) or die ("erreur ".mysql_error());
if ($exec != false)
{
echo "Tout les message ".$id_client." ont été supprimer";
}
}
}else{
echo "aucun message selectionné";
}
?>
mais toujours le même resultat en fait ce que je comprends pas c'est comment faire en sorte que mon tableau maintenant creer affecte toute les variables ...
Posté : 11 juin 2006, 17:41
par agité
par contre quand je fais ca :
echo $array['0'].",".$array['1'].",".$array['2'];
il me retourne que la premiere valeur ... donc en fait il ne prends en compte dans les variable transmise en POST que la premiere ?
Posté : 11 juin 2006, 18:02
par agité
bon j'ai tester avec $_GET et il me retourne bien dans l'URL toute les id que je veux supprimer mais quand je fais un tableau il ne me met que le dernier, comment mettre toute les id en tableau ?
Posté : 11 juin 2006, 18:03
par Cyrano
La valeur de ton attribut name de la liste de ton formulaire comporte-t-elle des "[]" ? Je parie que non... Si tu veux récupérer un tableau, il faudrait faire en sorte que les valeurs sélectionnées soient stockées dans un tableau.
Posté : 11 juin 2006, 18:13
par agité
Oui c'etait tout simplement ca oublié de mettre les crochet pour definir un tableau quel idiotie :s
Merci a toi je met [Resolu]