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

Symfony PHP Discussion :

[Twig] Ajout de case à cocher pour chaque élément d'une liste


Sujet :

Symfony PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    148
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 148
    Points : 73
    Points
    73
    Par défaut [Twig] Ajout de case à cocher pour chaque élément d'une liste
    Bonjour,

    Dans mon code source, je récupère une liste de questions enregistrées dans ma base de donnée, cette liste est stockée dans un array que je balance ensuite à ma vue avec la fonction render(). Ce que je voudrais faire dans ma vue, c'est qu' à l’intérieur de ma boucle twig qui parcourt le tableau de questions, j'ajoute pour chacune d'entre elles une checkbox, c'est à dire:

    QUESTION1 checkbox
    QUESTION2 checkbox
    Etc...
    Mais je n'y parviens pas, voici mon code qui n'affiche que mes questions de mon tableau mais pas mes checkbox:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <ul>
    {% for question in questions %}
    <li>{{ question }} {% block checkbox_widget %}</li></br>
    {% endblock %}
    {% endfor %}
    </ul>

  2. #2
    Membre éclairé

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    772
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2004
    Messages : 772
    Points : 872
    Points
    872
    Par défaut
    La fonction checkbox_widget fonctionne avec un objet Form en paramètre.

    Soit tu construis un Form Symfony2 et ça va aller, soit tu construis tes inputs à la main.

    A savoir que la fonction checkbox_widget n'est pas une fonction Twig native, mais un élément du "Bridge" entre Symfony2 et Twig...
    • Mon blog PHP : http://blog.alterphp.com
    • "Peace cannot be kept by force, it can only be achieved by Understanding" -- Albert Einstein

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    148
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 148
    Points : 73
    Points
    73
    Par défaut
    Merci de ta réponse,

    Construire ses inputs à la main ,c'est à dire que pour chaque question que j'ai dans mon tableau je fait un form_widget ? le tous ce fait dans une boucle comme je parcours mon tableau contenant mes questions ...

  4. #4
    Membre éclairé

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    772
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2004
    Messages : 772
    Points : 872
    Points
    872
    Par défaut
    Même problème avec form_widget, ces fonctions prennent un Form en paramètre.

    Par construire un form à la main, j'entends :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <ul>
    {% for question in questions %}
    <li>{{ question }} <input type="checkbox" name="question[{{ loop.index0 }}]" value="" /></li></br>
    {% endblock %}
    {% endfor %}
    </ul>
    Mais si tu utilises Symfony2, utilises des objets Form, c'est encore le mieux, et très vite plus simple !
    • Mon blog PHP : http://blog.alterphp.com
    • "Peace cannot be kept by force, it can only be achieved by Understanding" -- Albert Einstein

  5. #5
    Membre actif

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    186
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2008
    Messages : 186
    Points : 234
    Points
    234
    Par défaut
    Quelle est ton entité ou ton modèle que tu utilises pour ton formulaire ? Parce que je pense que tu ne devrais pas faire de boucles pour afficher des checkbox. Admettons tu as une classe (A) qui a plusieurs questions (1-n), alors tu devrais avoir une classe de formulaire AType qui a un champs question de types choices. Et dans les options de choices tu passes ton tableaux de valeurs. Possible qu'en utilisant le type entity tu puisses utiliser l'option multiple, voir doc (http://symfony.com/doc/current/refer...es/entity.html).

    Ouvres un nouveau sujet si tu veux, mais ça n'est pas un problème de twig.

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    148
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 148
    Points : 73
    Points
    73
    Par défaut
    Merci pour les réponses, c'est résolu pour ce problème, en creusant un peu plus ;D

Discussions similaires

  1. créer une hashmap pour chaque élément d'une liste
    Par lealeblanc dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 30/05/2015, 16h23
  2. [AC-2003] Sortir un pdf pour chaque élément d'une liste déroulante
    Par Malela dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 09/07/2012, 20h04
  3. Calcul de la Médiane pour chaque élément d'une table
    Par yuekerobero dans le forum Requêtes
    Réponses: 11
    Dernier message: 30/09/2008, 12h01
  4. [MySQL] Une case à cocher pour chaque enregistrement d'un tableau
    Par batoule80 dans le forum PHP & Base de données
    Réponses: 29
    Dernier message: 28/09/2008, 16h48
  5. Réponses: 12
    Dernier message: 03/12/2007, 18h53

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