[PHP-HTML] checkbox cochée ou non ?
Résolu/Fermé
Yotte
Messages postés
29
Date d'inscription
mardi 7 juin 2005
Statut
Membre
Dernière intervention
15 juin 2005
-
16 août 2005 à 11:17
salsh-tea Messages postés 15 Date d'inscription jeudi 13 juin 2013 Statut Membre Dernière intervention 27 janvier 2014 - 14 juin 2013 à 13:12
salsh-tea Messages postés 15 Date d'inscription jeudi 13 juin 2013 Statut Membre Dernière intervention 27 janvier 2014 - 14 juin 2013 à 13:12
A voir également:
- [PHP-HTML] checkbox cochée ou non ?
- Editeur html - Télécharger - HTML
- Easy php - Télécharger - Divers Web & Internet
- &Nbsp html ✓ - Forum Webmastering
- Espace en html - Astuces et Solutions
- Espace html ✓ - Forum HTML
8 réponses
StreM
Messages postés
515
Date d'inscription
lundi 18 octobre 2004
Statut
Membre
Dernière intervention
28 février 2007
124
16 août 2005 à 13:14
16 août 2005 à 13:14
Tu es sur la bonne piste pour ce qui est d'utiliser des formulaires avec des tableaux.
Par contre, vu ce que tu veux faire, c'est pas le moyen le plus judicieux.
Appelle tes input <input name="choixA">
Et récupères les par :
$_POST['choixA']
Un input checkbox sans value coché aura une valeur à TRUE donc pour faire le test :
if ($_POST['choixA']) {...} suffit.
Et pour boucler sur tes valeur, tu peux parcourir l'alphabet :
Ou encore, tu peux appeler tes input name="choix1", et faire une boucle avec :
Sinon, avec un name="choix[]" , tu peux recuperer tes valeur avec :
$tab =$_POST['choix'];
$tab est alors un array, donc
if (isset($tab)) est toujours TRUE.
C'est if (isset($tab['A'])) qu'il faut utiliser.
bon courage !
Par contre, vu ce que tu veux faire, c'est pas le moyen le plus judicieux.
Appelle tes input <input name="choixA">
Et récupères les par :
$_POST['choixA']
Un input checkbox sans value coché aura une valeur à TRUE donc pour faire le test :
if ($_POST['choixA']) {...} suffit.
Et pour boucler sur tes valeur, tu peux parcourir l'alphabet :
for ($ascii = ord('A'); $ascii <= ord('Z'); $ascii++) { echo chr($ascii); }
Ou encore, tu peux appeler tes input name="choix1", et faire une boucle avec :
for ($i=0,$i<7,$i++ { if ($_POST['choix'.$i]) { echo "choix ".$i; } }
Sinon, avec un name="choix[]" , tu peux recuperer tes valeur avec :
$tab =$_POST['choix'];
$tab est alors un array, donc
if (isset($tab)) est toujours TRUE.
C'est if (isset($tab['A'])) qu'il faut utiliser.
bon courage !
Bonjour,
J'ai trouvé un exemple qui pourrait vous aider :
#################################
<? if(!empty($_POST["mon_champ"])) { ?>
Vous avez choisi comme option -
<b>
<?
for ($i = 0; $i < count($_POST["mon_champ"]); $i++)
echo $_POST["mon_champ"][$i]." - ";
?>
</b><br><br>
<? } ?>
<FORM method="POST">
<input type="checkbox" name="mon_champ[]"
value=1>Option 1<br>
<input type="checkbox" name="mon_champ[]"
value=2>Option 2<br>
<input type="checkbox" name="mon_champ[]"
value=3>Option 3<br>
<input type="Submit" value="OK">
</FORM>
####################################
J'ai trouvé un exemple qui pourrait vous aider :
#################################
<? if(!empty($_POST["mon_champ"])) { ?>
Vous avez choisi comme option -
<b>
<?
for ($i = 0; $i < count($_POST["mon_champ"]); $i++)
echo $_POST["mon_champ"][$i]." - ";
?>
</b><br><br>
<? } ?>
<FORM method="POST">
<input type="checkbox" name="mon_champ[]"
value=1>Option 1<br>
<input type="checkbox" name="mon_champ[]"
value=2>Option 2<br>
<input type="checkbox" name="mon_champ[]"
value=3>Option 3<br>
<input type="Submit" value="OK">
</FORM>
####################################
pour faire ca facilement, y'a la fonction implode en php qui est tres simple à utiliser est qui renvoi sous forme de string toute les checkbox cochées séparé par un caractère de séparation à definir dans la fonction.
Avec cette technique, aucune boucle à créer !
Avec cette technique, aucune boucle à créer !
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
pdf
Messages postés
133
Date d'inscription
lundi 21 juillet 2003
Statut
Membre
Dernière intervention
11 juillet 2016
11 déc. 2010 à 14:01
11 déc. 2010 à 14:01
hello ,
la solution de emibru super mais le problème est que dés qu'on sort de la boucle la variable n'a plus de valeur , alors que récupéré les valeurs de checkbos sert a inséré celle-ci dans une table.
donc ma question comment sortir la variable de la boucle en gardant ses valeurs ?
la solution de emibru super mais le problème est que dés qu'on sort de la boucle la variable n'a plus de valeur , alors que récupéré les valeurs de checkbos sert a inséré celle-ci dans une table.
donc ma question comment sortir la variable de la boucle en gardant ses valeurs ?
salsh-tea
Messages postés
15
Date d'inscription
jeudi 13 juin 2013
Statut
Membre
Dernière intervention
27 janvier 2014
14 juin 2013 à 13:12
14 juin 2013 à 13:12
Bonjour je rencontre le même problème aussi, sauf que je sais pas comment savoir quel checkbox a été choisi puisque tous ont le même nom...j'utilise une boucle While parceque je sais pas combien de ligne mon tableau va contenir, sa dépend de la base de données...On ce qui concerne le test j'incrémente une variable lorsque un checkbox est coché, mais ca renvoie toujours 1 parce que tous les checkbox ont le même nom peut être.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Bibliotheque</title>
</head>
<body>
<H3><center style="color: brown">Liste des Livres de la bibliotheque</center></H3><br/>
<?php
include('connexion.php');
$NbrC=0;
$select="Select *FROM livre";
$resultat=mysql_query($select)
or die('Requete non conforme');
echo "<table border=1 align=center><tr><th>Titre du livre</th><th>Nom de l'auteur</th><th>Categorie</th><th>Statut du livre</th><th>Reserver</th></tr>";
while($x=mysql_fetch_array($resultat))
{
echo "<tr>";
echo"<td>".$x['Titre']."</td>";
echo"<td>".$x['Nom_Auteur']."</td>";
echo"<td>".$x['Categorie']."</td>";
echo"<td>".$x['Code_enreg']."</td>";
echo"<td><form method=POST action=lecteurLivres.php><input type=checkbox name=check>reserver</td>";
echo "</tr>";
}
echo "</table><br/>\n";
echo "<center><input type=Submit name=bouton size=30 value=Valider></form></center>";
if(isset($_POST['check']))
{
$NbrC++;
if(isset($_POST['bouton']))
{
echo $NbrC;
}
}
?>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Bibliotheque</title>
</head>
<body>
<H3><center style="color: brown">Liste des Livres de la bibliotheque</center></H3><br/>
<?php
include('connexion.php');
$NbrC=0;
$select="Select *FROM livre";
$resultat=mysql_query($select)
or die('Requete non conforme');
echo "<table border=1 align=center><tr><th>Titre du livre</th><th>Nom de l'auteur</th><th>Categorie</th><th>Statut du livre</th><th>Reserver</th></tr>";
while($x=mysql_fetch_array($resultat))
{
echo "<tr>";
echo"<td>".$x['Titre']."</td>";
echo"<td>".$x['Nom_Auteur']."</td>";
echo"<td>".$x['Categorie']."</td>";
echo"<td>".$x['Code_enreg']."</td>";
echo"<td><form method=POST action=lecteurLivres.php><input type=checkbox name=check>reserver</td>";
echo "</tr>";
}
echo "</table><br/>\n";
echo "<center><input type=Submit name=bouton size=30 value=Valider></form></center>";
if(isset($_POST['check']))
{
$NbrC++;
if(isset($_POST['bouton']))
{
echo $NbrC;
}
}
?>
</body>
</html>
23 mars 2011 à 03:01
Une checkbox coché ne renvoie pas TRUE, mais plutôt 'on'.
Le test if($_POST['checkbox']) marche car les chaines non-vide sont transtypé en TRUE.
Si on fait le test if($_POST['checkbox'] === TRUE) là ça ne marche plus !
Un simple var_dump($_POST) peut éviter de propager ce genre de bêtise -_-
22 sept. 2011 à 15:12
Merci à Zhp pour les subtilités, mais pas pour le style un peu agressif pour rien... ;)
6 déc. 2011 à 18:26
En tout cas merci à tous deux =)
15 déc. 2011 à 17:55