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

HTML Discussion :

Récupérer les valeurs des CheckBox


Sujet :

HTML

  1. #1
    Membre du Club
    Récupérer les valeurs des CheckBox
    Bonjour,
    Je débute en HTML/CSS et PHP, je suis entrain de faire un site internet. Sur ce site internet je voudrais pouvoir afficher la liste des utilisateurs qui est stockée dans une base de données et dont la taille et le contenu varie et pouvoir en sélectionner plusieurs. Pour cela j'ai utiliser la checkBox. Pour afficher une checkBox à tous mes utilisateurs j'ai utilisé un for. Mais en partant comme ça je ne vois pas comment récupérer les valeurs qui ont été cochées. J'ai mis la valeur de la box en id pour que les box n'aient pas le même identifiant mais je ne vois pas comment récupérer ce qu'il y a dedans.
    Voici ma fonction PHP qui appelle ma fiche HTML:



    Et voici ma fiche HTML:




    J'espère avoir été claire....
    Merci pour vos réponses !

  2. #2
    Membre émérite
    Bonjour,

    Plutôt quelque chose comme ça ?
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <div id="listChoixUser">
    	{% for user in listeUsers %}
    		<div class="choixUser">
    			<label for="user-{{user.id}}">
    				<input type="checkbox" id="user-{{user.id}}" name="listUser[]" value="{{user.id}}"> {{user.lastname|upper}} {{user.firstname|ucfirst}}
    			</label>
    		</div>
    	{% endfor %}
    </div>

    Afin de te renvoyer en sortie un array contenant les ID des utilisateurs sélectionnés (code à adapter).

    Dans tous les cas, si tu veux être propre :

    • Affiche nom & prénom en libellé mais récupère l'ID de l'utilisateur (plus simple à gérer et à traiter ensuite)
    • Passe "choixUser" en .class (et non en #id, vu qu'il va se répéter)
    • Oublie le <td> (il doit être dans un <table>, rien à faire ici
    • Le for du <label> doit être le même que l'id de l'input
    Pensez à utiliser les ressources disponibles en Dev. Web :
    (x)HTML : Cours (X)HTML / FAQ (X)HTML
    CSS : Cours CSS / FAQ CSS / Galerie CSS
    Javascript : Cours / FAQ / Sources
    Mon site : Développeur Web Freelance

  3. #3
    Membre du Club
    Bonjour HiRoN ,
    Merci pour ta réponse, cependant, à quoi correspond le mot intval ?

  4. #4
    Membre émérite
    Vérifier que tu récupères bien un int, mais fais sans
    Pensez à utiliser les ressources disponibles en Dev. Web :
    (x)HTML : Cours (X)HTML / FAQ (X)HTML
    CSS : Cours CSS / FAQ CSS / Galerie CSS
    Javascript : Cours / FAQ / Sources
    Mon site : Développeur Web Freelance

  5. #5
    Membre du Club
    Bonjour HiRon, merci beaucoup, j'ai bien adapté ce que tu m'as envoyé avec mon mon code.

    Maintenant il me reste un problème, je travaille sur PhpStorm avec Symfony, je ne comprends pas encore très bien le mode de fonctionnement. Comment je fais pour récupérer les utilisateurs sélectionnés ? je sais que ça sera avec user-{{user.id}} mais je ne sais pas ou (dans le Controller.php ou dans la fiche html.twig) écrire et ce qu'il faut écrire (y a-t-il besoin d'utiliser $POST ou avec PhpStorm et Symfony il y a une autre manière) ?

    J'ai fais ça:

    ma fiche HTML:
    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
     
    <html xmlns="http://www.w3.org/1999/html">
     
    <link rel="stylesheet" href="envoyerFiche.css" />
    <form method="post" action="ficheNCController.php">
        <div id="listeChoixUser">
        <p>
            {% for user in listeUsers %}
                <label for="user-{{user.id}}">
                    <input type="checkbox" id="user-{{user.id}}" name="listUser[]" value="{{user.id}}">
                    {{user.lastname|upper}} {{user.firstname}}
                </label>
                <br/>
            {% endfor %}
        </p>
        </div>
     
        <button class="valid-user btn btn-succes" type="submit">
            <a href="{{path('userSelectionnes')}}">Valider</a>
        </button>
     
    </form>
     
    </html>


    et ma fonction Php dans un Controller:

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
         public function userSelectionnes(){
             if(isset($_POST['listUser'])){ 
     
                 foreach($_POST['listUser'] as $chkbx){
     
                     echo $chkbx;
     
                 }
             }
             return new Response('Aucun truc selectionné');
         }


    Cela me retourne Aucune truc sélectionné sans retourner les id que j'ai sélectionné avant ça...
    Encore merci !

  6. #6
    Membre émérite
    Helllo !

    Ne bossant pas avec Symfony, je ne pense pas être la personne la plus qualifiée pour te répondre correctement.
    De plus, ta question relève du PHP et n'est donc pas dans le bon forum.

    Tu devrais, en théorie, récupérer un array listUser qui contiendra les ID des utilisateurs.

    Je te conseille donc de reposer ta question au bon endroit
    Pensez à utiliser les ressources disponibles en Dev. Web :
    (x)HTML : Cours (X)HTML / FAQ (X)HTML
    CSS : Cours CSS / FAQ CSS / Galerie CSS
    Javascript : Cours / FAQ / Sources
    Mon site : Développeur Web Freelance

###raw>template_hook.ano_emploi###