Précédent   Forum des professionnels en informatique > PHP > Langage > Formulaires
Formulaires Forum d'entraide sur les formulaires avec PHP. Avant de poster -> FAQ formulaires, Cours de formulaires et Sources de formulaires
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 06/08/2007, 15h40   #1
Membre régulier
 
Avatar de Sytchev3
 
Inscription : mai 2005
Messages : 423
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 423
Points : 95
Points : 95
Envoyer un message via MSN à Sytchev3
Par défaut Récupérer la valeur d'un checkbox

Je souhaiterai savoir comment l'on sait si une case d'un checkbox est coché ou non. J'alimente la valeur de départ à partir d'une base de données. Le problème c'est que si je décoche la case la méthode POST me dit que je ne renvoie rien donc je force la valeur à zéro et si recoche la case je renvoie toujours zéro la case n'est donc plus coché comment puis je faire ??? J'utilise le code suivant :



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
31
32
33
34
35
36
 
 
Modification : 
...
 
if (isset($_POST["txtvalparametre$j$i"]))
				{
					${'valeur'.$j} = $_POST["txtvalparametre$j$i"];
 
				}
				else
				{				
					${'valeur'.$j}= "0";
				}
				echo ${'valeur'.$j};
 
...
 
Affichage :
 
...
 
if ($data['VAL'.$i.'PTPE0T']=="0" or $data['VAL'.$i.'PTPE0T']=="")
								{
									$valeurparametre="'0'";
 
								}
								else
								{
									$valeurparametre="'1'"." checked";
 
								} 			
 
echo "<td style='width: 250px;'><input type=${'typechamp'.$i} name=$nomchamp value=$valeurparametre size={$data['LOMAXVAL'.$i.'I']} maxlength={$data['LOMAXVAL'.$i.'I']}></td>";
 
...
Sytchev3 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/08/2007, 00h03   #2
Expert Confirmé
 
Avatar de Séb.
 
Inscription : mars 2005
Messages : 2 827
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France

Informations professionnelles :
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mars 2005
Messages : 2 827
Points : 3 459
Points : 3 459
Citation:
Envoyé par Sytchev3
Je souhaiterai savoir comment l'on sait si une case d'un checkbox est coché ou non.
Avec isset( ).

Citation:
J'alimente la valeur de départ à partir d'une base de données. Le problème c'est que si je décoche la case la méthode POST me dit que je ne renvoie rien donc je force la valeur à zéro et si recoche la case je renvoie toujours zéro la case n'est donc plus coché
Désolé, je ne comprends pas la problématique.
__________________
Un problème exposé clairement est déjà à moitié résolu
Keep It Smart and Simple
Séb. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/08/2007, 08h19   #3
Membre chevronné
 
Avatar de cadoudal56
 
Inscription : février 2005
Messages : 671
Détails du profil
Informations personnelles :
Âge : 40

Informations forums :
Inscription : février 2005
Messages : 671
Points : 646
Points : 646
Hello,

Il n'est pas simple de comprendre ton probleme.
Cependant je peux te dire que normalement un controle de type checkbox n'a pas de valeur. Soit il est Checked et dans ce cas sa valeur est 1 soit il est unchecked et sa valeur est 0

Si j'ecris ceci
Code :
1
2
 
<input type="checkbox" name="controle" value="0" Checked>
Ici la boite est cochée mais comme j'ai défini la valeur a 0, meme si la case est coché, il va renvoyer sa valeur (qui est 0)

Si j'ecris ceci
Code :
1
2
 
<input type="checkbox" name="controle">
Ici la valeur est a zero car la boite est décochée, mais si je la coche, la valeur sera a 1.

En gros il ne faut pas mettre de valeur dans un controle checkbox.

@+
cadou
__________________
PHP Competition System
Script de gestion de coupes et championnats
http://phpcompet.free.fr

Mon jeu de foot
cadoudal56 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/08/2007, 08h56   #4
Membre régulier
 
Avatar de Sytchev3
 
Inscription : mai 2005
Messages : 423
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 423
Points : 95
Points : 95
Envoyer un message via MSN à Sytchev3
En clair je ne doit pas renseigner la valeur value lorsque le case est décoché c'est bien ça ??? Le problème est que le type du composant est défini dans une base et que je le génère dynamiquement donc si la valeur dans ma base est 0 ou '' la valeur de value du checkbox doit être affecté à '' ou je ne définit pas du tout la value ???

je devrait donc mettre cela comme code :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
if ($data['VAL'.$i.'PTPE0T']=="0" or $data['VAL'.$i.'PTPE0T']=="")
								{
									//$valeurparametre="'0'"; je ne fais rien ou
//$valeurparametre="''";
 
								}
								else
								{
									$valeurparametre="'1'"." checked";
 
								} 			
 
echo "<td style='width: 250px;'><input type=${'typechamp'.$i} name=$nomchamp value=$valeurparametre size={$data['LOMAXVAL'.$i.'I']} maxlength={$data['LOMAXVAL'.$i.'I']}></td>";
Sytchev3 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/08/2007, 09h04   #5
Membre chevronné
 
Avatar de cadoudal56
 
Inscription : février 2005
Messages : 671
Détails du profil
Informations personnelles :
Âge : 40

Informations forums :
Inscription : février 2005
Messages : 671
Points : 646
Points : 646
Hello,

Si la valeur est supérieure a 0 tu dois mettre le checked.
Si elle est a zero tu ne dois pas mettre le checked

C'est aussi simple que cela

@+
cadou
__________________
PHP Competition System
Script de gestion de coupes et championnats
http://phpcompet.free.fr

Mon jeu de foot
cadoudal56 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/08/2007, 09h13   #6
Membre régulier
 
Avatar de Sytchev3
 
Inscription : mai 2005
Messages : 423
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 423
Points : 95
Points : 95
Envoyer un message via MSN à Sytchev3
Donc je dois faire ça :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
 
si la valeur de ma base = 0 ou vide
 
$valeurparametre="";
 
si la valeur de ma base = 1
 
$valeurparametre="'1'". "checked";
 
après j'allimente value avec la variable de dessus pour créer mon composant :
 
echo "<td style='width: 250px;'><input type=${'typechamp'.$i} name=$nomchamp value=$valeurparametre size={$data['LOMAXVAL'.$i.'I']} maxlength={$data['LOMAXVAL'.$i.'I']}></td>";
Cela marche mais le problème c'est que lorsque je coche la case comme valeur il me poste size=... c'est à dire le paramètre suivant ??? Que puis je faire ???
Sytchev3 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h37.


 
 
 
 
Partenaires

Hébergement Web