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

 PHP Discussion :

formulaire: transmettre un choix prédéfini d'une liste déroulante sans afficher la liste [1.x]


Sujet :

PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2008
    Messages
    207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2008
    Messages : 207
    Par défaut formulaire: transmettre un choix prédéfini d'une liste déroulante sans afficher la liste
    Bonjour,

    J'ai une table article, et une table article Category. Les articles ne peuvent appartenir qu'à une catégorie.

    Quand j'ai généré les formulaires avec symfony, bien évidemment, au moment de la création d'un article, il me propose une liste déroulante avec toutes les catégories possibles.

    J'aimerais faire quelque chose de particulier: que la liste déroulante ne soit pas proposée à l'utilisateur, mais qu'une des valeurs de cette liste, toujours la même, soit retenue et transmise lors de la sauvegarde de l'article.

    Pourquoi? J'ai des articles de toutes sortes: comptes rendus, notes, articles de presse, etc. et tous seront rédigés par les administrateurs du site.

    Cependant, dans la partie publique, il y aura un club de réflexion privé auquel quelques administrateurs et des personnes inscrites pourront publier des articles.

    Quand les personnes inscrites s'authentifieront sur le site par sfGuard après avoir cliqué sur "publier un article", je voudrais que la liste des catégories ne leur soit pas proposée, mais que seule l'entrée "articles du club de réflexion" soit retenue et insérée dans la base de données au moment de la sauvegarde de l'article.

    Du coup, ma question, c'est: peut-on déclarer un sfWidgetChoice et les validateurs mais, dans le template, ne pas afficher cette liste déroulante tout en prenant en compte la valeur retenue en amont dans l'action? J'avoue que j'ai un gros doute, car j'ai tenté plusieurs trucs et ça ne semble pas fonctionner (en tout cas, ce que j'ai fait ne marchait pas)

    Enfin voilà, ça patauge !

    Merci par avance pour votre aide,
    John

  2. #2
    Membre émérite Avatar de Herode
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2005
    Messages
    825
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2005
    Messages : 825
    Par défaut
    Tu peux affecter une valeur par défaut à ton widget.

    Tu peux aussi filtrer la liste des choix proposés, en particulier tu t'arranger pour n'avoir qu'un choix possible.

    Tu peux aussi cacher ton widget à l'utilisateur avec les CSS.

    Mais surtout, puisqu'un sfWidgetFormChoice sert à proposer un choix et que tu ne veux pas que l'utilisateur choisisse, ni même qu'il voie le widget, pourquoi ne pas utiliser un sfWidgetFormInputHidden ?

  3. #3
    Membre éprouvé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2011
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2011
    Messages : 124
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    unset($this['nomChamps']);
    Attention, ceci désactive le champs et son validateur.

    A partir de là, l'utilisateur ne peut plus renseigner ce champs et tu peux mettre ta valeur par défaut.

  4. #4
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    Le sfWidgetFormInputHidden ne cache pas totalement le champ. Celui-ci reste envoyé dans le formulaire et donc visible si l'on affiche code HTML. Et, potentiellement, il reste modifiable avant ou lors de la génération du POST.

  5. #5
    Membre éprouvé Avatar de Maerlyn31
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2011
    Messages : 71
    Par défaut
    Tu as plusieurs solutions pour ce genre de comportement. Par exemple, tu peux dans ta classe de formulaire définir le widget de ta catégorie comme un champ caché, y passer uen valeur par défaut correspondant à ta catégorie, et y allier un validateur qui contrôlera que cette valeur par défaut n'a pas été modifiée.

    Tu peux aussi supprimer complètement la catégoie du formulaire (avec un unset comme le disait PeytaWodka), puis la rajouter manuellement dans ton action de traitement du formulaire => http://www.6ma.fr/astuce/injecter+de...re+symfony-267

  6. #6
    Membre éclairé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2008
    Messages
    207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2008
    Messages : 207
    Par défaut
    Merci!

    Je vais regarder tout ça et re essayer

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Choix dans une liste déroulante qui affiche la div correspondante
    Par Mr Quinou dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 11/11/2014, 09h20
  2. Réponses: 33
    Dernier message: 27/09/2012, 11h46
  3. Réponses: 3
    Dernier message: 01/02/2008, 13h29
  4. [Formulaire]liste déroulante sans doublon
    Par kovrov dans le forum IHM
    Réponses: 15
    Dernier message: 01/04/2007, 20h09
  5. [Formulaire]Liste déroulante sans doublons
    Par frevale dans le forum IHM
    Réponses: 2
    Dernier message: 22/03/2007, 21h54

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