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 :

Case à cocher et base de données


Sujet :

Langage PHP

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Octobre 2007
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Case à cocher et base de données
    bonjour

    je voudrais afficher plusieurs enregistrements contenant des cases à cocher que l'utilisateur puisse cocher plusieurs cases et enregistrer le résultat

    en fait je voudrais afficher les 12 mois de l'année avec une case à cocher par jour pour faire un calendrier des congés

    et je ne sais pas comment faire

    merci

  2. #2
    Expert éminent
    Avatar de 12monkeys
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2006
    Messages
    4 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2006
    Messages : 4 093
    Points : 9 031
    Points
    9 031
    Par défaut
    Bonjour,

    Tu veux bien utiliser un formulaire ? Si oui je te propose ceci :

    Le code pour conserver la valeur des cases à cocher :
    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
     
    	if (!empty($_POST['chkbxsel'])) {
    		foreach($_POST['chkbxsel'] as $valeurduchkbxsel){
    			if ($valeurduchkbxsel == 1) {
    			    $choix_info1 = 1;
    			} else {
    			    $choix_info1 = 0;
    			}
    			if ($valeurduchkbxsel == 2) {
    			    $choix_info2 = 1;
    			} else {
    			    $choix_info2 = 0;
    			}
    			if ($valeurduchkbxsel == 3) {
    			    $choix_info3 = 1;
    			} else {
    			    $choix_info3 = 0;
    			}
    		}
    	} else {
    	    $choix_info1 = 0;
    	    $choix_info2 = 0;
    	    $choix_info3 = 0;
    	}
    Puis le code du formulaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <form method="post" action="formulaire.php">
    <input type="checkbox" name="chkbxsel[]" value="1" disabled <?php if (($choix_info == 3) and ($choix_info1 == 1)) { echo "checked"; } ?>>Janvier.<br>
    <input type="checkbox" name="chkbxsel[]" value="2" disabled <?php if (($choix_info == 3) and ($choix_info2 == 1)) { echo "checked"; } ?>>Fevrier.<br>
    <input type="checkbox" name="chkbxsel[]" value="3" disabled <?php if (($choix_info == 3) and ($choix_info3 == 1)) { echo "checked"; } ?>>Mars.<br>
    </form>
    ...
    Puis tu l'enregistre dans une base de données :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    $connect = mysql_connect($hote, $user, $mdp_bdd)	or die("Impossible de se connecter\n");
    					echo "Connexion réussie\n";
    mysql_select_db("$base") or die("Impossible de se connecter à la base de donnée\n");
    			echo "Connexion réussie\n";
     
    	$requete_cree_enreg = "INSERT INTO nomdelatable(choix_info1, choix_info2, choix_info3) VALUES ('$choix_info1','$choix_info2','$choix_info3')";
    	$result_cree_enreg = mysql_query($requete_cree_enreg) or die("erreur requete cree enreg");
     
    mysql_close($connect);
    Bien sur il faut que tu mette autant de cases à cocher que tu as besoin et donc adapter le reste du code à ce nombre...
    Dis nous si ça marche...

  3. #3
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Points : 5 673
    Points
    5 673
    Par défaut
    Plus simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    $check1 = ""; $check2 = ""; $check3 = "";
     
    if (!empty($_POST['chkbxsel'])) {
    foreach($_POST['chkbxsel'] as $valeurduchkbxsel){
     
    switch($valeurduchkbxsel) {
    case 1 : $check1 = "checked"; break;
    case 2 : $check2 = "checked"; break;
    case 3 : $check3 = "checked"; break;
    }
     
    }
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <form method="post" action="formulaire.php">
    <input type="checkbox" name="chkbxsel[]" value="1" <?php echo $check1; ?> >Janvier.<br>
    <input type="checkbox" name="chkbxsel[]" value="2" <?php echo $check2; ?> >Fevrier.<br>
    <input type="checkbox" name="chkbxsel[]" value="3" <?php echo $check3; ?> >Mars.<br>
    </form>

  4. #4
    Nouveau Candidat au Club
    Inscrit en
    Octobre 2007
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 2
    Points : 1
    Points
    1
    Par défaut merci mais ...
    bonjour

    c'est pas mal mais je dois afficher 12 enregistrements (12 mois) et 31 cases à cocher (1 par jour) comment mettre à jour dans ma table les 12 enregistrements après validation ?

    merci

  5. #5
    Expert éminent
    Avatar de 12monkeys
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2006
    Messages
    4 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2006
    Messages : 4 093
    Points : 9 031
    Points
    9 031
    Par défaut
    Citation Envoyé par 12monkeys Voir le message
    Bonjour,
    Le code pour conserver la valeur des cases à cocher :
    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
     
    	if (!empty($_POST['chkbxsel'])) {
    		foreach($_POST['chkbxsel'] as $valeurduchkbxsel){
    			if ($valeurduchkbxsel == 1) {
    			    $choix_info1 = 1;
    			} else {
    			    $choix_info1 = 0;
    			}
    			if ($valeurduchkbxsel == 2) {
    			    $choix_info2 = 1;
    			} else {
    			    $choix_info2 = 0;
    			}
    			if ($valeurduchkbxsel == 3) {
    			    $choix_info3 = 1;
    			} else {
    			    $choix_info3 = 0;
    			}
    		}
    	} else {
    	    $choix_info1 = 0;
    	    $choix_info2 = 0;
    	    $choix_info3 = 0;
    	}
    Attention : ce code ne semble pas fonctionner !! Pourtant il marchait au début !! mais en testant sur mon site il ne conserve qu'une case à cocher même si on en clique plusieurs !! Je ne sais pas d'où ça vient , je suis certain qu'il fonctionnait correctement au début...

    c'est pas mal mais je dois afficher 12 enregistrements (12 mois) et 31 cases à cocher (1 par jour) comment mettre à jour dans ma table les 12 enregistrements après validation ?
    A part ma réflexion ci dessus, le reste de mon code (en particulier l'enregistrement dans la base) ne fonctionne pas ?

Discussions similaires

  1. [MySQL] cases à cocher et base de données
    Par berti dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 26/04/2011, 17h13
  2. [MySQL] Enregistrer plusieurs case à coché en base de données
    Par mademoizel dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 05/06/2010, 21h37
  3. Réponses: 5
    Dernier message: 24/03/2010, 14h55
  4. Copier dans le presse papier le contenu d'une case d'une base de données
    Par Donovan dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 14/06/2009, 13h10
  5. valeur case à cocher et base access
    Par cari dans le forum VBA Access
    Réponses: 34
    Dernier message: 08/02/2006, 17h09

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