Précédent   Forum des professionnels en informatique > PHP > Langage > Débuter
Débuter Forum d'entraide pour débuter en PHP. Avant de poster -> Cours PHP, FAQ PHP, Outils PHP, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 11/01/2011, 16h55   #1
Membre régulier
 
Inscription : août 2010
Messages : 265
Détails du profil
Informations forums :
Inscription : août 2010
Messages : 265
Points : 77
Points : 77
Par défaut Checkbox cochée ou pas?

Bonjour,
Je n'arrive pas à trouver une solution qui me permette de savoir si un utilisateur a coché une checkbox:

J'ai ceci:

Code :
<input type="checkbox" name="Proposition1">
Et si proposition1 est coché je voudrais que la variable $proposition1 recoive 1, inversement 0 si elle n'est pas cochée ...
Quelle est la syntaxe qui permet de faire ça s'il vous plait ?
Merci
dekalima est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2011, 17h12   #2
Membre régulier
 
Inscription : novembre 2010
Messages : 102
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 102
Points : 86
Points : 86
Code :
1
2
3
4
5
6
 
$proposition1=0;
if ( $_POST("Proposition1") )
{
$proposition1=1;
}
?
Soull est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 11/01/2011, 17h13   #3
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Plus proprement, il faut utiliser isset() :
Code :
1
2
 
$proposition1 = isset($_POST["Proposition1"]) ? 1 : 0;
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 11/01/2011, 17h23   #4
Membre régulier
 
Inscription : août 2010
Messages : 265
Détails du profil
Informations forums :
Inscription : août 2010
Messages : 265
Points : 77
Points : 77
Ah ben j'imaginais pas si simple, désolé je suis débutant en PHP
En tout cas merci à vous deux!
dekalima est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/01/2011, 10h22   #5
Membre régulier
 
Inscription : août 2010
Messages : 265
Détails du profil
Informations forums :
Inscription : août 2010
Messages : 265
Points : 77
Points : 77
Je me permets de réouvrir ce sujet car j'ai un autre problème assez proche...
J'ai 5 checkbox et quand l'utilisateur clique sur un bouton "valider", si les 5 sont décochées, je souhaite avoir un message javascript d'erreur:
Voici ce que j'ai fait:

Les 5 checkbox sont de ce type:
Code :
<input type="checkbox" name="Proposition1" value="0" onclick="this.value=(this.value==0)?1:0">
Leurs noms sont Proposition1, Proposition2 ect ...

et j'ai ceci en JS:

Code :
1
2
3
4
5
6
7
8
<script type="text/javascript">
			 function verif_formulaire()
			{
 
			if ((Proposition1==0)&&	(Proposition2==0)&& (Proposition3==0)&& (Proposition4==0)&& (Proposition5==0)){alert("chiant");return false;}									
			}
 
</script>
Mais ça ne marche pas...
sachant que j'ai bien entendu ça plus haut:
Code :
<form name="nouvelajoutquestion" action="nouvelajoutquestion_SQL.php" method ="POST" onSubmit="return verif_formulaire()">
dekalima est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/01/2011, 11h11   #6
Membre régulier
 
Inscription : août 2010
Messages : 265
Détails du profil
Informations forums :
Inscription : août 2010
Messages : 265
Points : 77
Points : 77
J'ai changé une ligne de cette manière :

Code :
			if ((document.nouvelajoutquestion.Proposition1.value==0)&&	(document.nouvelajoutquestion.Proposition2.value==0)&& (document.nouvelajoutquestion.Proposition3.value==0)&& (document.nouvelajoutquestion.Proposition4.value==0)&& (document.nouvelajoutquestion.Proposition5.value==0)){alert("chiant");return false;}
Mais tjrs rien
dekalima est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/01/2011, 11h34   #7
Membre Expert
 
Avatar de ska_root
 
Homme
Développeur informatique
Inscription : août 2005
Messages : 1 179
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 42
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : Service public

Informations forums :
Inscription : août 2005
Messages : 1 179
Points : 1 580
Points : 1 580
Bonjour,

Tu devrais créer un topic dans la rubrique javascript, car aucun rapport avec PHP ici...

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
 
<html>
<head>
  <title>test</title>
  <script type="text/javascript">
 
function verif(frm) {
 
   var elts= frm["cases[]"];
   var test= false;
 
   for(var i=0; i<elts.length; i++) 
      if(elts[i].checked) test= true;
 
   if(!test) alert("il faut cocher au moins une checkbox !");
   return test;   
}
 
  </script>
</head>
<body>
 
<form method="post" action="" onsubmit="return verif(this)">
<input type="checkbox" name="cases[]" value="1"/>
<input type="checkbox" name="cases[]" value="2"/>
<input type="checkbox" name="cases[]" value="3"/>
<input type="submit" name="sub" value="test !" />
</form>
</body>
</html>
__________________
http://cdemarche.developpez.com/

Tu as la réponse à ta question ? N'oublies pas le petit en bas à gauche de ton message...
ska_root est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 12/01/2011, 13h02   #8
Membre régulier
 
Inscription : août 2010
Messages : 265
Détails du profil
Informations forums :
Inscription : août 2010
Messages : 265
Points : 77
Points : 77
Merci pour ta réponse, j'ai testé, en effet ça passe mais j'aurais bien aimé cette version qui me semblait plus simple:


Code :
if(document.nouvelajoutquestion.Proposition1.checked == false){alert("rferregfegegerger");}
avec :

Code :
<input type="checkbox" name="Proposition1">
Pourquoi ce truc simple ne marche pas, j'aimerais bien comprendre l'erreur....
dekalima est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/01/2011, 13h26   #9
Membre Expert
 
Avatar de ska_root
 
Homme
Développeur informatique
Inscription : août 2005
Messages : 1 179
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 42
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : Service public

Informations forums :
Inscription : août 2005
Messages : 1 179
Points : 1 580
Points : 1 580
mouais...

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
 
<html>
<head>
  <title>test</title>
  <script type="text/javascript">
 
function verifFrm() {
  if(
    !document.testFrm.cases1.checked &&
    !document.testFrm.cases2.checked &&
    !document.testFrm.cases3.checked) 
{
    alert("aucune case cochée !");
    return false;
}
  return true;   
}
 
  </script>
</head>
<body>
 
<form method="post" name="testFrm" action="" onsubmit="return verifFrm()">
<input type="checkbox" name="cases1" value="1"/>
<input type="checkbox" name="cases2" value="2"/>
<input type="checkbox" name="cases3" value="3"/>
<input type="submit" name="sub" value="test !" />
</form>
</body>
</html>
ça fonctionne chez moi...

__________________
http://cdemarche.developpez.com/

Tu as la réponse à ta question ? N'oublies pas le petit en bas à gauche de ton message...
ska_root est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/01/2011, 13h52   #10
Membre régulier
 
Inscription : août 2010
Messages : 265
Détails du profil
Informations forums :
Inscription : août 2010
Messages : 265
Points : 77
Points : 77
Ouais je sais pas c'est bizarre...
Je comprends pas pourquoi tu mets value=1 value=2 ect dans les input des checkbox, ça sert à quoi ?
Merci encore à toi...
dekalima est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/01/2011, 14h27   #11
Membre Expert
 
Avatar de ska_root
 
Homme
Développeur informatique
Inscription : août 2005
Messages : 1 179
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 42
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : Service public

Informations forums :
Inscription : août 2005
Messages : 1 179
Points : 1 580
Points : 1 580
Effectivement, dans ce cas précis, cela ne sert pas à grand chose, car chaque checkbox a un attribut "name" différent.

donc la page qui se sert du résultat va chercher les valeurs ainsi :

Code :
1
2
3
4
5
 
$checkbox1= $_POST['cases1'];
$checkbox2= $_POST['cases2']; // si le checkbox n'a pas été coché, $_POST['cases2'] n'existe pas (il faudrait donc tester son existence avant)...
 
...etc...
mais si tu prends mon exemple précédent, tous les checkbox ont le même attribut "name" (a savoir "cases[]" )
l'attribut "value" prend ainsi tout son sens :

Code :
1
2
3
4
5
6
7
8
 
$cases = $_POST['cases'];
$checkbox1= false;
$checkbox2= false;
 
if (in_array(1, $cases)) $checkbox1 = true; // 1 représente l'attribut "value" du checkbox
if (in_array(2, $cases)) $checkbox2 = true;
...etc...
bien sûr, ce code doit être optimisé, mais c'est juste pour t'expliquer la différence...

__________________
http://cdemarche.developpez.com/

Tu as la réponse à ta question ? N'oublies pas le petit en bas à gauche de ton message...
ska_root est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/01/2011, 18h09   #12
Membre régulier
 
Inscription : août 2010
Messages : 265
Détails du profil
Informations forums :
Inscription : août 2010
Messages : 265
Points : 77
Points : 77
Merci bcp pour ces explications master !!
dekalima est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h41.


 
 
 
 
Partenaires

Hébergement Web