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 12/05/2008, 12h19   #1
Invité de passage
 
Inscription : mai 2008
Messages : 18
Détails du profil
Informations forums :
Inscription : mai 2008
Messages : 18
Points : 4
Points : 4
Par défaut Tester si checkbox existe != Tester si checkbox cochée

Bonjour a tous,

J'ai 2 formulaire qui contiennent chacun leurs checkboxs.

J'ai une fonction unique qui recupere les valeurs POST de chaque formulaire.

Afin de creer la requete qui me permettrais de sauvegarder les valeurs je devrais tester :


SI (maCheckBox existe) {
Si ( macheckBox est cochee )
$sql .= "maChecbox = true"
else
$sql .= "maChecbox = else"
}
else // cad si ma checkBox n'existe pas ne rien faire { }


Le probleme est qu'en php la fonction isset($POST_['maCheckBox']) teste :
(CheckBox cochee && checkBox existe).

N'hesiter pas a repondre merci

PS : desole pour les accents clavier qwerty oblige :/
loonis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/05/2008, 12h26   #2
Expert Confirmé
 
Avatar de Séb.
 
Inscription : mars 2005
Messages : 2 835
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 835
Points : 3 468
Points : 3 468
Ce n'est pas lié à PHP mais au HTML.
=> Si la checkbox n'est pas cochée alors sa valeur n'est pas transmise ce qui en soit est tout à fait suffisant pour décrire deux états.

Quelle est la problématique exactement ? Peut-être que des boutons radio ou un <select> seraient plus apropriés.
__________________
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 12/05/2008, 12h47   #3
Invité de passage
 
Inscription : mai 2008
Messages : 18
Détails du profil
Informations forums :
Inscription : mai 2008
Messages : 18
Points : 4
Points : 4
Citation:
Envoyé par Séb. Voir le message
Ce n'est pas lié à PHP mais au HTML.
=> Si la checkbox n'est pas cochée alors sa valeur n'est pas transmise ce qui en soit est tout à fait suffisant pour décrire deux états.

Quelle est la problématique exactement ? Peut-être que des boutons radio ou un <select> seraient plus apropriés.
La fonction qui recupere la valeur les valeurs POST du formulaire a besoins de savoir si la checkbox existe dans page si elle existe alors elle recupere la valeur cochee, non cochee pour creer la requete. Si la checbox n'existe pas alors elle ne creer pas de requete.

La fonction isset retourne (CheckBox cochee && checkBox existe).

Il me faudrai une astuce (fonction?) php qui retournerai (checkBox existe) et une autre (CheckBox cochee).

Voici la fonction en question si cela peut t'aider :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
function sql_insert_preference_checkboxes($checkboxlistfield) {
/* $checkboxlistfield est un tableau qui contient le nom de tous les nom des tableaux de mes differentes liste de checkboxs*/
       $sql="";
	foreach ($checkboxlistfield as $value) {
        $result=0;
		if(isset($_POST[$value])) {  // c'est ici que se pose mon probleme
			$val = $_POST[$value];
 
			for ($i=0; $i<count($val); $i++) {
                            $result |= $val[$i];
			}
 
		}
                $sql.=$value."=".$result.", ";
	}
    return $sql;
}
loonis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/05/2008, 13h29   #4
Expert Confirmé
 
Avatar de Séb.
 
Inscription : mars 2005
Messages : 2 835
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 835
Points : 3 468
Points : 3 468
Citation:
La fonction qui recupere la valeur les valeurs POST du formulaire a besoins de savoir si la checkbox existe dans page
Si isset($_POST['nomCheckbox']) == TRUE alors la checkbox existe ET est cochée.
Si isset($_POST['nomCheckbox']) == FALSE alors la checkbox n'a pas été cochée OU BIEN elle n'était pas présente dans le formulaire.
Si cela ne te convient pas alors il faudra passer par des boutons radio oui/non qui contrairement à une checkbox peuvent avoir une valeur par défaut ou utiliser des champs-drapeaux HIDDEN indiquant la présence des checkboxes.

Citation:
si elle existe alors elle recupere la valeur cochee
OK, classique.

Citation:
non cochee pour creer la requete
??

Citation:
Si la checbox n'existe pas alors elle ne creer pas de requete.
Hum, si rien ne se passe qd la checkbox n'est pas cochée j'ai vraiment du mal à voir où se situe ton pb.
__________________
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 13/05/2008, 17h57   #5
Invité de passage
 
Inscription : mai 2008
Messages : 18
Détails du profil
Informations forums :
Inscription : mai 2008
Messages : 18
Points : 4
Points : 4
reBonjour,

Citation:
Si isset($_POST['nomCheckbox']) == TRUE alors la checkbox existe ET est cochée.
Si isset($_POST['nomCheckbox']) == FALSE alors la checkbox n'a pas été cochée OU BIEN elle n'était pas présente dans le formulaire.
Si cela ne te convient pas alors il faudra passer par des boutons radio oui/non qui contrairement à une checkbox peuvent avoir une valeur par défaut ou utiliser des champs-drapeaux HIDDEN indiquant la présence des checkboxes.
En fait c'est tout a fait sa, j'ai resolu le probleme en ajoutant tous les checkboxes du formulaire 1 dans le formulaire 2 en hidden et vice versa. C'est crade mais sa marche je verrais plus tard pour une solution propre :/

Merci pour ton aide
loonis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/05/2008, 14h25   #6
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 383
Points : 16 383
Une solution possible : tu accompagnes chaque checkbox d'un champ hidden l'identifiant

Code :
1
2
3
 
<input type="checkbox" name="checkbox1" />
<input type="hidden" name="is_checkbox1"  />
Si la case est cochée : isset(checkbox1) = TRUE
Si la case n'est pas cochée : isset(checkbox1) = FALSE && isset(is_checkbox1) = TRUE
Si la case n'est pas présente : isset(is_checkbox1) = FALSE

(edit : solution proposée par Séb, je viens de voir)
sabotage 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 16h27.


 
 
 
 
Partenaires

Hébergement Web