[RESOLU] Enregistrement et récuperation de la valeur d'une checkbox vers/depuis une BDD

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Enregistrement et récuperation de la valeur d'une checkbox vers/depuis une BDD

par mere-teresa » 11 févr. 2009, 11:11

Non, tu peux, cela ne nous dérange aucunement :)

Modération :
Puisque ta question est résolue, j'ajoute le tag [Résolu]
pour indiquer aux personnes qui voudront consulter ce sujet qu'il contient une solution.

Tu peux réaliser cette opération toi-même
en cliquant sur le bouton Image qui s'affiche en haut à gauche de ce sujet
si tu as posté le 1er message en tant que membre (inscrit et identifié).

Alors... inscris-toi !!! ;)

par SpiT » 11 févr. 2009, 03:22

Et bien voila j'ai enfin terminé ma 1er étape : Enregistrement et récupération de la valeur d'une Checkbox depuis/vers une base de donnée :). "So Happy"

Il me reste pas mal de chose a faire.


Merci encore.

PS : en signe de remerciement, j'aurai voulu mettre le lien de votre site internet en bas de page de mon projet, cela ne vous dérange pas?

par ouckileou » 10 févr. 2009, 22:41

$valeur n'existe pas, cherche la bonne variable à utiliser pour afficher la langue.

C'est un code de base, il faut absolument que tu comprennes bien ce que tu fais pour cet exercice.

par Invité » 10 févr. 2009, 21:09

Merci encore,

Il y a bien tous qui s'affiche à par le nom des valeurs :(

Je vous met le code de mes 2 pages :

Code des sélections des CB :
<form name="formulaire1" method="POST" action="script.php">
Selectionner votre langage :<br>
<input type="checkbox" name="langage[]" value="fr"> Français <br>
<input type="checkbox" name="langage[]" value="en"> anglais <br>
<input type="checkbox" name="langage[]" value="de"> allemand <br>
<input type="submit" name="submit" value="Envoyer">
</form>
Code du fichier traitement :
<?php
// vérifions que la variable a été transmise
$tabLangages = (isset($_POST['langage']))?$_POST['langage']:null;
$tabTousLangages = array('fr', 'en', 'de'); //à adapter à ton cas

echo "<br>";
// bouclons sur le tableau de toutes les langues et affichons les valeurs qui sont dans le tableau transmis des valeurs sélectionnées
if (!empty($tabLangages)) 
   { foreach ($tabTousLangages as $langue) 
             { if (in_array($langue, $tabLangages))
                 { echo '<input type="checkbox" checked="checked">'.$valeur.'<br>';    
                 }
                 else 
                 { echo '<input type="checkbox" >'.$valeur.'<br>';    
                 }
             }
   }
?> 

par albat » 10 févr. 2009, 18:32

Manquaient des accolades... :evil:
<?php
// vérifions que la variable a été transmise
$tabLangages = (isset($_POST['langage']))?$_POST['langage']:null;
$tabTousLangages = array('fr', 'en', 'de'); //à adapter à ton cas

echo "<br>";
// bouclons sur le tableau de toutes les langues et affichons les valeurs qui sont dans le tableau transmis des valeurs sélectionnées
if (!empty($tabLangages)) 
   { foreach ($tabTousLangages as $langue) 
             { if (in_array($langue, $tabLangages))
                 { echo '<input type="checkbox" checked="checked">'.$valeur.'<br>';    
                 }
                 else 
                 { echo '<input type="checkbox" >'.$valeur.'<br>';    
                 }
             }
   }
// else
// echo '<input type="checkbox">'.$valeur.'<br>';    
?>
On peut aussi optimiser ainsi :
<?php
// vérifions que la variable a été transmise
$tabLangages = (isset($_POST['langage']))?$_POST['langage']:null;
$tabTousLangages = array('fr', 'en', 'de'); //à adapter à ton cas

echo "<br>";
// bouclons sur le tableau de toutes les langues et affichons les valeurs qui sont dans le tableau transmis des valeurs sélectionnées
if (!empty($tabLangages)) 
   { foreach ($tabTousLangages as $langue) 
             { echo '<input type="checkbox" '.(in_array($langue, $tabLangages) ? 'checked="checked"' : '').'>'.$valeur.'<br>';    
             }
   }
// else
// echo '<input type="checkbox">'.$valeur.'<br>';    
?>

par SpiT » 10 févr. 2009, 17:51

Merci beaucoup

Mais :

Code : Tout sélectionner

Parse error: syntax error, unexpected T_ELSE in ./test/script.php on line 16

:(

par mere-teresa » 10 févr. 2009, 17:36

<?php
// vérifions que la variable a été transmise
$tabLangages = (isset($_POST['langage']))?$_POST['langage']:null;
$tabTousLangages = array('fr', 'en', 'de'); //à adapter à ton cas

echo "<br>";
// bouclons sur le tableau de toutes les langues et affichons les valeurs qui sont dans le tableau transmis des valeurs sélectionnées
if (!empty($tabLangages)) 
    {
        foreach($tabTousLangages as $langue) 
            {
                 if(in_array($langue, $tabLangages))

                echo '<input type="checkbox" checked="checked">'.$valeur.'<br>';    
            }
            else 
           {
               echo '<input type="checkbox" >'.$valeur.'<br>';    
            }
    }
//Else
//echo '<input type="checkbox">'.$valeur.'<br>';    
        
?> 

par SpiT » 10 févr. 2009, 17:33

OUllaaa sa va un peu loin :( je pensé pas que sa allé être aussi casse tête que sa.

Je pensé plutôt en langage francais :


si CB coché alors etat = 1
si CB non coché alors etat = 0

et à la lecture :

si etat = 1 alors cocher CB
si etat = 0 alors CB non coché

mais je vois que c'est bien compliqué :(

Donc pourriez-vous en grande âme généreuse, me rajouter juste cette ligne de code? :).

Histoire de me débloquer que je puisse ce soir et cette nuit plancher sur l'enregistrement vers ma BDD.

Merci.

par mere-teresa » 10 févr. 2009, 17:11

Ah grande question, dans $tabLangages, tu ne récupères que les langues cochées du formulaire. Si veux, il va falloir faire un tableau de référence : $tabTousLangages, et durant le foreach, tu regardes si la valeur en cours sur $tabTousLangages a une correspondance dans le tableau $tabLangages.

par SpiT » 10 févr. 2009, 17:07

Bon je rencontre un problème :

J'aimerai que même si les CB ne sont pas coché, la valeur s'affiche quand même, avec une CB non coché.

J'ai essai cela mais aucune valeur se rajoute :
<?php
// vérifions que la variable a été transmise
$tabLangages = (isset($_POST['langage']))?$_POST['langage']:null;

echo "<br>";
// bouclons sur le tableau qui a été transmis et affichons les valeurs sélectionnées
if (!empty($tabLangages)) 
	{
		foreach($tabLangages as $cle => $valeur) 
			{
				echo '<input type="checkbox" checked>'.$valeur.'<br>';	
			}
	}
Else
echo '<input type="checkbox">'.$valeur.'<br>';	
		
?> 
Une idée?

par SpiT » 10 févr. 2009, 16:04

Mhh je pensse avoir deja trouvé pour avoir directement les CB coché:

Code : Tout sélectionner

<?php // vérifions que la variable a été transmise $tabLangages = (isset($_POST['langage']))?$_POST['langage']:null; echo "Voici les langages que vous avez choisi :<br>"; // bouclons sur le tableau qui a été transmis et affichons les valeurs sélectionnées if (!empty($tabLangages)) { foreach($tabLangages as $cle => $valeur) { echo $cle.'<input type="checkbox" checked="checked">'.$valeur.'<br>'; } } ?>
Je suis entrain de bosser sur l'enregistrement dans ma BDD

par SpiT » 10 févr. 2009, 15:58

Merci pour ce lien je ne l'avais pas vu dans mes recherches.

Je vais essayer de creuser ce code puisque je ne veu pas récupérer la valeur "textuelle" de la checkbox mais si elle est coché ou non, donc imaginons :

[x] choix 1
[ ] choix 2

[Envoyer]

Quand l'utilisateur clique sur "envoyer", La fonction "etat coché ( donc Checked)" est envoyé.

L'utilisateur reviens le lendemain pour cocher le choix 2.

Il se connecte avec ces log et l'etat "coché" de la checkbox est reprise dans la base de donnée.
En gros je voudrai que la checkbox soit coché automatiquement puisqu'il avai enregistré cette état.
[x] choix 1
[ ] choix 2

Merci encore.

par ouckileou » 10 févr. 2009, 13:18

Voici comment récupérer les valeurs : http://www.phpfrance.com/forums/voir_sujet-5220.php

Ensuite va sur phpdebutant.org par exemple et regarde comment alimenter une base de données avec PHP.

Tu pourras poser des questions si tu n'arrives pas à faire telle ou telle chose précise.

Enregistrement et récuperation de la valeur d'une checkbox v

par Spit » 10 févr. 2009, 12:23

Bonjour,

Dans le cadre d'un projet professionnel, je suis à la recherche d'un morceau de code qui me bloque mon projet depuis 2semaines.

J'ai fait plusieurs recherche sur internet et ce genre de question est souvent mal interprété ou mal répondu, en général, sa ne ressemble pas au projet que je suis entrain de faire.

Comme l'indique le titre du topic, je voudrai faire une formulaire avec plusieurs checkbox et un bouton 'submit' qui enregistrerai l'état ( coché ou non ) des Checkbox.

ensuite par simple connexion par login, je récupérerai l'état des checkboxs ( coché ou non ).

Pour faire simple je voudrai juste ce morceau de code, qui permet l'enregistrement et la récupération de l'état d'une checkbox vers/depuis une BDD.

Si vous avez besoin que je vous donne plus de détail, je suis à votre disposition.


En vous remercient de votre futur réponse.

SpiT