Suppressions via checkbox

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Suppressions via checkbox

Re: Suppressions via checkbox

par Ryle » 07 nov. 2012, 10:47

Et il faut surtout adapter le traitement pour qu'il parcours un tableau d'id et non pas une requête SQL :
if (isSet($_POST['options']) 
{
   $total = count($_POST['options']);
   $options = $_POST['options'];

   for ($i = 0; $i < $total; $i++)
   {
      mysql_query('DELETE FROM contact WHERE id = '. $options[$i]); // nota : pas de quote ou de guillemets autour des nombres en sql
   }
}
ou plus simplement :
if (isSet($_POST['options']) {
   foreach ($_POST['options'] as $i) { // le foreach parcours les éléments un par un sans avoir besoin de les compter
      $sql = 'DELETE FROM contact WHERE id = ' . $options[$i];
      mysql_query($sql); // exécute une requête par id à supprimer
   }
}
ou plus optimisément (?) :
if (isSet($_POST['options']) {
      $sql = 'DELETE FROM contact WHERE id IN (' . implode(',', $options) . ')'; // le implode() va générer la chaîne : id1,id2,... à partir des id récupérés
      mysql_query($sql); // exécute une seule requête pour supprimer tous les id
}

Re: Suppressions via checkbox

par dix2 » 06 nov. 2012, 20:50

effectivement, je me suis trompé
dans le code HTML, il fait mettre des crochets comme ceci:
<input type="checkbox" name="options[]" value="choix1" />
<input type="checkbox" name="options[]" value="choix2" />
il y a un topic similaire ici

Re: Suppressions via checkbox

par sefezfze » 06 nov. 2012, 20:29

Tout d'abord merci pour ta réponse.

J'ai pourtant lu quelque part que tous les checkbox devaient avoir le même nom (par exemple options[]).
Par ce que après j'ai besoin d’explorer ça avec la boucle for pour pouvoir supprimer la sélection :?

Re: Suppressions via checkbox

par dix2 » 06 nov. 2012, 17:31

salut,

les attributs "name" des cases à cocher doivent être différents

@+
dix2

Suppressions via checkbox

par sefezfze » 06 nov. 2012, 17:04

Bonjour,

Je permet sur une page de la partie admin de supprimer plusieurs données via des Checkbox.
Mais le problème, c'est que ça supprime seulement 1 valeur même si on en sélectionne plusieurs.
if($_POST['choix'] == 1)
							{		
								$total = count($_POST['options']);
								$options = mysql_fetch_array($sql);

								for($i = 0; $i < $total; $i++)
								{
									 mysql_query('DELETE FROM contact WHERE id = "'. $options['id'][$i] .'"');
								}
							}
Voilà la première mesure, mais je trouve pas comment faire. J'ai essayé avec implode mais ça me retourne une erreur...