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 :

[Formulaire] Afficher texte au lieu d'un input [2.x]


Sujet :

Symfony PHP

  1. #1
    Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2014
    Messages : 2
    Points : 3
    Points
    3
    Par défaut [Formulaire] Afficher texte au lieu d'un input
    Bonjour !

    Je voudrais savoir une chose, j'ai un formulaire dans lequel j'affiche certaines informations sans pour autant laisser l'utilisateur connecté la possibilité de modifier ces informations.

    Il y a pour ça une option disabled dans le champ du formulaire qui si on la passe à false, rajoute l'attribut disabled au formulaire et empêche également toutes modifications au niveau de la validation du formulaire.

    Seulement, l'affichage d'un input text ne me plait pas trop pour deux raisons, la première, visuellement c'est étrange car j'ai un grand tableau avec plein d'input text désactivé ce qui esthétiquement n'est pas terrible et il n'est pas très évident de lire les champ désactivés sans faire de surcharge css. Autre problème, le champ ne s'adapte pas automatiquement à la taille du texte donc le texte se retrouve coupé s'il dépasse la taille fixe de l'input.

    Je voudrais donc savoir s'il était possible d'afficher simplement un span de texte au lieu d'un input dans ce cas précis. Je n'ai jamais essayé de surcharger / créer mes propres templates de formulaires donc peut-être que la solution est là.

    Merci d'avance pour vos réponses !

  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
    Tu crées un formulaire avec seulement les champs que l'utilisateur peut modifier
    Dans ta vue (edit.html.twig?) Tu affiches les caractéristiques de ton objet {{ ton_entite.propriete }}

    Pourquoi?
    - Pas de problème de sécurité du formulaire (un input disabled ca se détourne facilement avec n'importe quel navigateur)
    - Pas de problème de bind/handleRequest du formulaire ( le formulaire ne met a jour que les champs modifiable sur ton objet)

    Attention, cette méthode a des limites si ton formulaire a des champs qui passe dynamiquement de modifiable à non modifiable

  3. #3
    Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2014
    Messages : 2
    Points : 3
    Points
    3
    Par défaut
    Merci pour ta réponse gototog.

    Effectivement, je n'avais pas réalisé sur le coup que je pouvais récupérer mes entités depuis mes objets FormView. Je te remercie pour m'avoir mis sur cette voie là, cela m'a permis de résoudre mon problème.

    Citation Envoyé par gototog Voir le message
    - Pas de problème de sécurité du formulaire (un input disabled ca se détourne facilement avec n'importe quel navigateur)
    - Pas de problème de bind/handleRequest du formulaire ( le formulaire ne met a jour que les champs modifiable sur ton objet)
    Juste une petite correction là-dessus, comme je l'ai indiqué le input disabled ne provoque pas de problèmes de sécurité puisque c'est l'intérêt premier du formulaire Symfony. Il sait exactement quels attributs sont modifiables ou non et ne sauvegardera pas les champs des entités considérés comme désactivés peut importe ce que tu essayes de faire au niveau de ton formulaire. Je pense que si le but est d'avoir un champ modifiable mais désactivé par défaut, il faut alors passer par l'option "attr" prévue pour cela.

    Ce que j'ai indiqué juste au dessus s'applique aussi pour le bind/handleRequest. Symfony ne mettra pas à jour des entités présent dans un formulaire qui n'ont pas été modifiées. Ce n'est pas pour rien que le formulaire de Symfony a besoin d'être nourrit des entités actuelles pour ensuite la comparée à la requête effectuée pour vérifier si celui-ci est valide et le remplir des éléments modifiés.

    Exemple ci-dessous :
    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
     
    // Il y a un select qui est refait avant la sauvegarde du formulaire
    $er = $this->getDoctrine()->getRepository('MyTestBundle:MyEntity');
    $aMyEntity = $er->findAll();
     
    // On nourrit le formulaire avec les entitées actuelles
    $form = $this->createFormBuilder()
         ->add('myentities', 'collection', array(
            'type' => new MyEntityType(),
            'data' => $aMyEntity
         )->getForm();
     
    // Le formulaire est nourrit des modifications ici
    $form->handleRequest($request);
     
    if ($form->isValid()) { // On peut d'après la ligne de code suivant si le formulaire est valide ou non
        foreach($form->get('myentities')->getData() as $myEntity) {
            // On récupérère ici uniquement les entitées modifier que l'on peut traiter à sa guise
        }
    }

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

Discussions similaires

  1. [AC-2003] Formulaire: afficher oui au lieu de 1
    Par debdev dans le forum IHM
    Réponses: 4
    Dernier message: 27/09/2011, 08h56
  2. Réponses: 10
    Dernier message: 27/03/2007, 12h21
  3. Formule s'affiche en "texte" au lieu d'etre celculée
    Par klowba dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 22/02/2007, 14h46
  4. Réponses: 4
    Dernier message: 12/05/2006, 19h48
  5. Afficher un varchar complet dans un input text
    Par PrinceMaster77 dans le forum ASP
    Réponses: 4
    Dernier message: 25/06/2004, 12h17

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