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 :

checkbox multiples pour une colonne entite


Sujet :

Symfony PHP

  1. #1
    Membre régulier
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2014
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2014
    Messages : 124
    Points : 71
    Points
    71
    Par défaut checkbox multiples pour une colonne entite
    Bonjour,
    J'ai voulu réaliser un array checkbox ou group checkbox pour alimenter une colonne de mon entité.

    j'ai trouver pour les formbuilers ceci

    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 buildForm(FormBuilder $builder, array $options)
    {
        $roles = ['role1', 'role2', 'role3'];
     
        $builder
            ->add('name')
            ->add('roles', 'choice', [
                'choices' => $roles,
                'multiple' => true,
                'expanded' => true
            ])
        ;
    }

    ça fonctionne j'ai bien mon nombre de checkbox, hors le hic c'est que si c'est en multiple=true j'ai des checkbox et si false j'ai des radios.

    Je souhaite des checkbox mais à chois unique donc marche pas.

    Jai donc décidé de le faire moi même pour l'enregistrement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     				<div class=" col-sm-2" style="border:2px solid blue">
    					<INPUT id="test" type="checkbox" name="type_marche" value=1>France<br>
    					<INPUT type="checkbox" name="type_marche" value=2> Suspension<br>
    					<INPUT type="checkbox" name="type_marche" value=3> Export CEE<br>
    					<INPUT type="checkbox" name="type_marche" value=4> Export Hors CEE<br>
    					<INPUT type="checkbox" name="type_marche" value=5> Réprosession<br>
    				</div>
    dans mon controller:

    je set en dur mon $_POST checkbox

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
            if ($form->isValid()) {
                $entity->setMarche($_POST["type_marche"]);
                $em->flush();
     
                return $this->redirect($this->generateUrl('client'));
            }

    J'essaye l'hors d'un update de récupérer la valeur de la colonne bdd marche pour mettre en selected mon checkbox qu'a le bon value mais en vain.

    j'ai essayé dans une view twig un <?php echo "test;?> pour voir si accroche rien

    j'ai voullu en js faire un tab de mes checkbox ou en jquery ok par contre comment récupérer la valeur que je souhaite exploiter pour mes checkbox au chargement de la page via du js ou jquery.

    J'ai pensé à de l'ajax mais c'est au chargement de la page donc pas obligatoire je pense.

    J'ai aussi tenté une condition sur l'élément de mon form rien à faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    {% if form_widget(form.marche) == 3 %}
    la valeur est bonne
    {% endif %}
     
    la valeur vaut 3 {{form_widget(form.marche)}}
     
    bah j'ai rien en retour
     
    entre twig php ça flop gonffle
     
    car en php uniquement je me fout des if isset tel valeur dans chaque checkbox c'est bon fait suer.
    Donc comment faire en sorte de retourner une checkbox parmi d'autre en selected au chargement de la pagfunction de la valeur de la colonne marche.

    ps: faut il obligatoiement de l'ajax pour interpréter en js ou jquery une valeur sql

    de plus si en ajax bah alors je remonte le tous je vois pas pourquoi un bout ajax pour checkbox builder form pour le reste donc comment faire

  2. #2
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Septembre 2009
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2009
    Messages : 875
    Points : 1 313
    Points
    1 313
    Par défaut
    En même temps le radio bouton a une signification bien précise qui correspond a ton cas, alors pourquoi vouloir le changer?


    Ducoup si tu utilises des checkbox comment tu fais pour qu'une seule soit coché? en javascript pur?
    Si c'est le cas tu dois faire une vérification coté serveur avant ce code si dessousif ($form->isValid())

  3. #3
    Membre régulier
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2014
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2014
    Messages : 124
    Points : 71
    Points
    71
    Par défaut
    Pour lire un paramètre de ton formulaire en jquery ou js dans une view twig, il faut le parser à son format

    Voici un exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
        {{form_widget(form.attributName}} 
     
        <script>
            $document.ready(function(){ 
                alert("form.attributName.vars.value|e('js')");
            });
         </script>

    cela récupère le value de l'élément de ton formulaire mais il y en a d'autre.

    form_widget représente tout l'élément ainsi que ses attributes, il faut donc dire grace à vars.? ce que l'on veut |e ou |escape ('js') ou ('attr_html') etc...

  4. #4
    Membre expérimenté Avatar de Nico_F
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2011
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2011
    Messages : 728
    Points : 1 310
    Points
    1 310
    Par défaut
    D'accord avec gototog : le radio button sert à ça, si tu veux qu'il ait l'allure d'une checkbox à toi de le designer en conséquence, mais :

    1. le tag html doit rester le même : à savoir <input type="radio" />
    2. c'est une mauvaise chose d'un point de vue ergonomique : les gens ont l'habitude de cocher un seul radio button, et plusieurs checkbox.


    Ça t'évitera au moins de devoir faire une gymnastique peu académique pour empêcher plusieurs checkboxes d'être cochées.

    ++

  5. #5
    Membre régulier
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2014
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2014
    Messages : 124
    Points : 71
    Points
    71
    Par défaut
    Bonjour,

    Pour parcourir parcourir tes checkbox, tu peux en jquery passer par un each ou un for et vérifier sur la key pour cocher la bonne case.

    et pour changer ça valeur un onchange

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
    			$("input[name='type_marche']").change(function(){
    				$("input[name='type_marche']").not(this).prop("checked", false);
    				$("#erp_societebundle_client_marche").val(this.value);
    			});
    pour les checkbox au lieu de radio la critique je n'ai rien contre par contre dénouer de solution je ne trouve pas cela crédible.

    ex: c'est pas tellement utile ce que je veux faire ok par contre si l'on propose un design ou quoi un lien ou une explication brève sinon autant rien dire.

    ps: si j'ai envie de manger dans mes chiottes et pisser dans ma chambre je dois pouvoir le faire xd

  6. #6
    Membre expérimenté Avatar de Nico_F
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2011
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2011
    Messages : 728
    Points : 1 310
    Points
    1 310
    Par défaut
    Pour reprendre ta métaphore, tout ce que je fais c'est t'expliquer que ta chambre n'est pas le meilleur endroit ou pisser et qu'il y a les toilettes pour ça.

    Pour les explications je pars du principe que tu es suffisamment malin pour comprendre ou pisser et comment fonctionne le WC, qui est lui spécialement et ergonomiquement parlant pensé pour ça, mais s'il te venait à l'idée de pisser sur le couvercle ou dans le bidet, on peut approfondir l'explication pour que tu comprennes vraiment ou doit aller ton jet (voire même reprendre la notice du WC).

    Si tu as toujours envie de pisser dans ta chambre libre à toi, mais tu auras plus de mal à trouver une documentation t'expliquant quel est le meilleur endroit de ta chambre ou pisser ou des gens aussi loufoques que toi qui ont envie de partager la manière dont ils pissent dans leur chambre.

    Si jamais tu veux que je t'explique comment fonctionne les WC je suis à dispo, sinon je te laisse nager dans ton urine.

    ++

  7. #7
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Septembre 2009
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2009
    Messages : 875
    Points : 1 313
    Points
    1 313
    Par défaut
    Citation Envoyé par Nico_F Voir le message
    Pour reprendre ta métaphore, tout ce que je fais c'est t'expliquer que ta chambre n'est pas le meilleur endroit ou pisser et qu'il y a les toilettes pour ça.

    Pour les explications je pars du principe que tu es suffisamment malin pour comprendre ou pisser et comment fonctionne le WC, qui est lui spécialement et ergonomiquement parlant pensé pour ça, mais s'il te venait à l'idée de pisser sur le couvercle ou dans le bidet, on peut approfondir l'explication pour que tu comprennes vraiment ou doit aller ton jet (voire même reprendre la notice du WC).

    Si tu as toujours envie de pisser dans ta chambre libre à toi, mais tu auras plus de mal à trouver une documentation t'expliquant quel est le meilleur endroit de ta chambre ou pisser ou des gens aussi loufoques que toi qui ont envie de partager la manière dont ils pissent dans leur chambre.

    Si jamais tu veux que je t'explique comment fonctionne les WC je suis à dispo, sinon je te laisse nager dans ton urine.

    ++
    je t'aime

  8. #8
    Membre régulier
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2014
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2014
    Messages : 124
    Points : 71
    Points
    71
    Par défaut
    A le somnambulisme.

    Je cherchais entre autre à savoir car voila je souhaite faire une sorte de property mais pas pour un choice mais function de ce que tu tapes dans un champs du formulaire.

    Je ne sais pas comment récupérer un element d'un formulaire x dans formulaire y pour updater la key trouvé sur un manytoone?
    j'utilise ajax pour le keyup
    En somme comment appeler un élément de ma 2eme entité pour juste updater ou insérer le foreign_key du premier.

    Personnellement ce qui me trouble avec symfony c'est le handleRequest() qui se charge de tout.

    Je le fais actuellement en ajoutant un element dans ma view (input) suivi si résultat d'un findOneBy dans le controller pour persiter la clef étrangère ou la créer le cas échéant.

    Merci de me rendre la vue afin qu'enfin je puis faire mes petites affaires la ou il faut car ça sniff !!!

Discussions similaires

  1. Multiplication d'une colonne par une seul valeur
    Par ANTMA dans le forum Excel
    Réponses: 2
    Dernier message: 28/11/2007, 16h33
  2. Utilisation des choix d'une zdl à choix multiples pour une requête
    Par Nanouche dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 10/10/2007, 02h57
  3. Largeur fixe pour une colonne de GridView
    Par slokix dans le forum ASP.NET
    Réponses: 11
    Dernier message: 26/09/2007, 09h01
  4. Formules multiples pour une même cellule
    Par nenkira dans le forum Excel
    Réponses: 2
    Dernier message: 05/04/2007, 13h29
  5. Union de 2 tables pour une colonne
    Par charleshbo dans le forum Langage SQL
    Réponses: 4
    Dernier message: 18/04/2006, 17h23

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