[Supprimer la sélection]

Statut
N'est pas ouverte pour d'autres réponses.

SkYlEsS

Elite
C'est encore moi :D

Nan râle pas Jereck :roll:

Ma question est toute simple : ayant un système de messagerie privée sur mon site, je me demandais comme je pouvais bien faire pour qu'on puisse sélectionner plus messages d'un seul clic, donc avec des <input type="checkbox"> ...

Je ne comprends pas comment récupérer les valeurs des checkbox cochées ... Valeurs qui correspondraient donc aux id des mps à effacer.

Bref, comme sur GamerZ et tous les forums je suppose :D

Merci :cool:
 

Jereck

Α & Ω
Staff
le plus simple, c'est que tu fasse le test avec un formulaire qui passe en "GET" et pas en "POST" pour voir exactement comment sont gérée les checkboxes.

Je me souviens juste que chacune doit avoir une propriété name/value différente de celle des autres (un peu comme un ID, tu vois ;)). perso, sur un de mes sites, j'ai donc :

Code:
<input name="<?PHP echo $id; ?>" type="checkbox" value="<?PHP echo $id; ?>">
et niveau script :

Code:
foreach ($_POST as $varr){
	$posted .= "$varr,";
}

$posted = substr ($posted,0,-8);
// Car j'ai une autres option qui passe aussi en $_POST
//	$_POST['action'] = delete => 'delete,' = 8

mysql_exec("DELETE FROM <table> WHERE id IN ($posted)");
 

Calvin80

Respect is key
Hello

juste un complèment par rapport à la reponse de Jereck:

tu peux utiliser un tableau de variable:
<input type="checkbox" name="valeur[1]">...
<input type="checkbox" name="valeur[2]">...
etc..

tes valeurs seront alors dans le tableau "valeur"
 
1er
OP
SkYlEsS

SkYlEsS

Elite
Donc :

Code:
<input name="'.$tab[0].'" type="checkbox">
et la destination contient :

Code:
<?

$id_joueur = $_COOKIE['id_joueur'];

foreach ($_POST as $varr)
{ 
	$posted .= "$varr,"; 
} 

$posted = substr($posted,0,-8);


$req = mysql_query("select * from ad_mp WHERE id IN ($posted) AND id_dest = '$id_joueur'");


if(mysql_numrows($req) != 0)
{

	$req = mysql_query("select * from ad_mp WHERE id IN ($posted) ");


	while($tab = mysql_fetch_array($req))
	{
		if($id_joueur == $tab['id_dest'] || $id_joueur == $tab['id_exp'])
		{

		 mysql_query("delete from ad_mp WHERE id IN ($posted) ");
		?>
		<script language="javascript">
		window.location.href='mp_inbox.htm';
		</script>
		<?
		}
		else
		{
		 echo '<div class="texte">Opération interdite</div>';
		}
	}
}
else
{
 echo '<div class="texte">Vous ne pouvez pas supprimer un message qui ne vous est destiné</div><br>';
 echo '<div class="menu"><a href="mp_inbox.htm">Retour aux messages</a></div>';
}

?>

:arrow: Warning: mysql_numrows(): supplied argument is not a valid MySQL result resource in /home/simcarri/www/mp_del+.php on line 14

Vous ne pouvez pas supprimer un message qui ne vous est destiné


Retour aux messages
 

Jereck

Α & Ω
Staff
'tention que mon " $posted = substr($posted,0,-8 ); " est là car dans mon cas, il y a 8 caractères de trop. la plus simple étant de faire un echo de $posted pour bien voir ce qu'il contient.
 
1er
OP
SkYlEsS

SkYlEsS

Elite
Ben disons que si je fais simplement :

Code:
foreach ($_POST as $varr)
{
   $posted .= "$varr,";
}

mysql_query("delete from ad_mp WHERE id IN ($posted)");
Il me supprime qu'un seul des choix sélectionner ! Comment faire pour qu'il refasse en boucle autant de fois ce code que de valeurs différentes choisies ?
 

zoheir

cvm.mangaleet()
insères ton query dans la boucle
 

FoX SpeEd

Touriste
simplement comme ca:

Code:
foreach ($_POST as $varr)
{
   mysql_query("delete from ad_mp WHERE id='".$varr."'");
}
 
1er
OP
SkYlEsS

SkYlEsS

Elite
Merci beaucoup à tous et un gros poutours à Jereck :D

A la semaine prochaine pour un nouveau problème à résoudre :D
 
1er
OP
SkYlEsS

SkYlEsS

Elite
Autant pour moi, j'avais omis de mettre dans le input le value du mp :roll:
 
Statut
N'est pas ouverte pour d'autres réponses.
Haut