IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Checkbox et variables


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 15
    Par défaut Checkbox et variables
    Bonjour,

    Je suis face à un problème, et j'avoue ne pas trouver de solution. Je souhaite enregistrer un formulaire dans une base de donnée mais je bloque lorsque je veux prendre en compte les "checkbox".
    Au niveau de la table j'ai 4 champs dont les valeurs seront 1 ou 0 suivant que la case est cochée ou non.
    voici le code du formulaire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    			<fieldset>
    				<legend>Cocher le(s) type(s) de demande : </legend>
    				<div>
    <input class="validate[required] checkbox" type="checkbox" name="checkboxdemande[]" id="maxcheck" value="opt1" /> option1<br />
     
    <input class="validate[required] checkbox" type="checkbox" name="checkboxdemande[]" id="maxcheck"  value="opt2" /> option2<br />
     
    <input class="validate[required] checkbox" type="checkbox" name="checkboxdemande[]" id="maxcheck"  value="opt3" /> option3<br />
     
    <input class="validate[required] checkbox" type="checkbox" name="checkboxdemande[]" id="maxcheck"  value="opt4" /> option4<br />
    				</div>
    			</fieldset>
    En gros comment puis-je récupérer 4 variables correspondant au 4 cases à cocher?
    Merci de votre aide

  2. #2
    Membre chevronné Avatar de guigo
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 612
    Par défaut
    Salut,
    si tu veux passer par des checkbox du doit leur donner un nom différent chacun. Sinon tu peux passer par un bouton radio si tu n'as qu'un choix possible

    Guigo

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 15
    Par défaut
    Salut Guigo, merci pour ta réponse rapide.

    J'utilise un script de vérification de formulaire qui nécessite que tout les checkbox aient le même nom.
    Et malheureusement il y a plusieurs choix possible.

    J'ai trouver des choses de ce type là :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if(isset($_POST['checkboxdemande']))
    	{
    	foreach($_POST['checkboxdemande'] AS $cle=>$value)
    					echo $cle,' -> ',$value, '<br />', "\n";*/
    	}
    Mais cela me donne seulement les cases cochées, or je voudrais avoir au finale 4 variables correspondant aux 4 cases ayant pour valeur 1 si la case est cochée et 0 si elle ne l'est pas.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,$voici une manière de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    <?php
    if(isset($_POST['checkboxdemande']))
    {
    	for($i=1; $i<5; $i++){
    		// les variables crées auront pour nom : $opt1, $opt2, ...
    		// les valeurs : 1 si cochée, 0 sinon
    		$opt{$i} = ($_POST['checkboxdemande'][$i]==1)? 1 : 0; 
    		echo '$opt'.$i.' -> ',$opt{$i}, '<br />', "\n";
    	}
    }
    ?>
    <div>
    	<form method="post" action="">
    			<fieldset>
    				<legend>Cocher le(s) type(s) de demande : </legend>
    				<div>
    <input class="validate[required] checkbox" type="checkbox" name="checkboxdemande[1]" id="maxcheck" value="1" /> option1<br />
    <input class="validate[required] checkbox" type="checkbox" name="checkboxdemande[2]" id="maxcheck"  value="1" /> option2<br />
    <input class="validate[required] checkbox" type="checkbox" name="checkboxdemande[3]" id="maxcheck"  value="1" /> option3<br />
    <input class="validate[required] checkbox" type="checkbox" name="checkboxdemande[4]" id="maxcheck"  value="1" /> option4<br />
    <input type="submit" value="envoi"/>
    				</div>
    			</fieldset>
    	</form>
    </div>
    On récupère 4 variables :
    $opt1 -> 0
    $opt2 -> 1
    $opt3 -> 0
    $opt4 -> 1
    A noter:
    ... name="checkboxdemande[1]" id="maxcheck" value="1" /> option1 ...
    ... name="checkboxdemande[2]" id="maxcheck" value="1" /> option2 ...
    ... name="checkboxdemande[3]" id="maxcheck" value="1" /> option3 ...
    ... name="checkboxdemande[4]" id="maxcheck" value="1" /> option4 ...

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 15
    Par défaut
    Merci pour ce code et effectivement cela semble marcher mais lorsque je précise l'indice (par exemple : checkboxdemande[] en checkboxdemande[1]) le script de validation du formulaire ne fonctionne plus, il considère que les checkbox ont tous des noms différents.

    En réalité ce script de validation (javascript) me permet d'afficher un message si l'utilisateur ne coche pas de case en disant qu'il faut cocher au moins une case. Si je modifie l'indice le message s'affiche pour chaque case, du coup cela n'a plus de sens.

    Si il n'y pas d'autre moyen, je supprimerai ce script.

  6. #6
    Invité
    Invité(e)
    Par défaut
    Bouge pas !
    j'en ai un autre, qui va fonctionner avec ta validation javascript :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    <?php
    if(isset($_POST['checkboxdemande'])) // array des values des checkbox cochées
    {
    	for($i=1; $i<5; $i++){ // pour $i = 1, 2, 3 ou 4
    		// si $i est dans l'array des checkboxdemande, c'est que la checkbox est cochée
    		// on crée la variable $opt{$i} ($opt1, $opt2, $opt3, $opt4)
    		$opt{$i} = (in_array($i, $_POST['checkboxdemande']))? 1 : 0;
    		echo '=> $opt'.$i.' -> ',$opt{$i}, '<br />', "\n";
    	}
    }
    ?>
    <div>
    	<form method="post" action="">
    			<fieldset>
    				<legend>Cocher le(s) type(s) de demande : </legend>
    				<div>
    <input class="validate[required] checkbox" type="checkbox" name="checkboxdemande[]" id="maxcheck" value="1" /> option1<br />
    <input class="validate[required] checkbox" type="checkbox" name="checkboxdemande[]" id="maxcheck"  value="2" /> option2<br />
    <input class="validate[required] checkbox" type="checkbox" name="checkboxdemande[]" id="maxcheck"  value="3" /> option3<br />
    <input class="validate[required] checkbox" type="checkbox" name="checkboxdemande[]" id="maxcheck"  value="4" /> option4<br />
    <input type="submit" value="envoi"/>
    				</div>
    			</fieldset>
    	</form>
    </div>
    A noter :
    <input class="validate[required] checkbox" type="checkbox" name="checkboxdemande[]" id="maxcheck" value="1" /> option1<br />
    <input class="validate[required] checkbox" type="checkbox" name="checkboxdemande[]" id="maxcheck" value="2" /> option2<br />
    <input class="validate[required] checkbox" type="checkbox" name="checkboxdemande[]" id="maxcheck" value="3" /> option3<br />
    <input class="validate[required] checkbox" type="checkbox" name="checkboxdemande[]" id="maxcheck" value="4" /> option4<br />
    Dernière modification par Invité ; 21/08/2011 à 10h58.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Vérification de plusieurs CHECKBOX en variable
    Par davleo dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 02/05/2014, 20h32
  2. Checkbox et variable tableau
    Par Kazevil dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 12/11/2010, 16h54
  3. Mettre une checkbox en variable
    Par kev484 dans le forum Langage
    Réponses: 6
    Dernier message: 17/01/2008, 18h59
  4. Checkbox, nombre variable
    Par HwRZxLc4 dans le forum Langage
    Réponses: 3
    Dernier message: 06/09/2007, 19h59
  5. passage de variable par un formulaire (checkbox)
    Par artotal dans le forum Langage
    Réponses: 3
    Dernier message: 16/10/2005, 19h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo