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 :

Modification de l'affichage des erreurs des formulaires [1.x]


Sujet :

Symfony PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 32
    Points : 34
    Points
    34
    Par défaut Modification de l'affichage des erreurs des formulaires
    Bonsoir,
    Quelle est la méthode pour modifier l'aspect sous lequel les erreurs retournées après la validation d'un formulaire sont affichées?

    Par défaut lorsqu'il y a une erreur, un champ avec écrit Required apparaît. Moi j'aurais voulu tout simplement que le label correspondant au champ erroné soit affiché en rouge.

    Encore une question de base désolé, mais je commence à faire une saturation de ce FM.

  2. #2
    zesavantfou
    Invité(e)
    Par défaut
    Si j'ai bien compris, il s'agit d'un formulaire que tu n'a pas fait toi même, et qui retourne required devant les champ erronés.
    Utilise le css pour modifier les couleurs.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 32
    Points : 34
    Points
    34
    Par défaut
    Coucou, déjà merci d'avoir répondu à mon appel.
    Mais la solution proposée ne fonctionnera pas:
    le 'required' possède l'attribut class='error_list' donc je peux lui coller un display:none à la limite, mais pour le label rien ne m'indique qu'il est attaché à un champ erroné du coup je ne peux pas lui attribuer une couleur différente.

    Je sens que je vais devoir me taper l'affichage de mon formulaire à la main, tant pis, c'était trop beau pour être vrai

  4. #4
    zesavantfou
    Invité(e)
    Par défaut
    bah je sais pas si j'ai compris mais t'as qu'a modifier error_list !!

    par exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    .error_list
    {
    color: blue;
    font-weight:bold;
    }

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 35
    Points : 24
    Points
    24
    Par défaut
    Salut, je vais t'aiguiller pour ton soucis, seulement est ce que ton form est généré via Doctrine? Si oui on va modifier directement au niveau de la class form de lib/form/doctrine

    Si non détails ton cas

    Fab

  6. #6
    Membre éclairé Avatar de grabriel
    Inscrit en
    Septembre 2006
    Messages
    946
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 946
    Points : 730
    Points
    730
    Par défaut
    Salut,

    Je tente mon coup :

    Tu dois avoir un truc comme ça dans ton template (indexSuccess ou autre fichier) pour afficher ton form:

    si c'est le cas découpe ton form comme ça (si c'est pas déjà fait) :

    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
     
    //on teste si le champ login à une erreur
    if (!empty($form['login']->renderError))
    {
        //on attribue le nom de la classe css rouge gras etc... (à définir dans ton css)
        $classe = 'erreur';
    }
    else
    {
        //on attribue le nom de la classe css normal (à définir aussi)
       $classe = 'normal';
    }
    echo '
    <table>
       <tr>
           <td>'.
               $form['login']->renderLabel(array('classe'=>$classe))
          .'</td>
          <td>'.
               $form['login']
          .'</td>
       </tr>
    </table>';
    J'ai pas testé le code mais le résultat théorique serai :
    Si t'as une erreur dans ton champ login la classe de ton libellé prends la valeur erreur.
    Lorsque t'affiche ton libelle tu lui attribue la valeur de ta classe!

    Je pense que cette solution n'est pas bonne car tu vas colorer le le libellé du champ et la source de l'erreur peux avoir plusieurs sources, dans ton cas c'est required mais si ton champ est invalid ou pas assez long tu ne saura pas le libellé sera rouge et t'auras aucun message d'avertissement.
    Bref cette solution n'est pas à généraliser (si elle fonctionne tel quel ).

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

Discussions similaires

  1. affichage des erreures du formulaire
    Par car00x dans le forum Django
    Réponses: 1
    Dernier message: 22/12/2012, 11h00
  2. Affichage des erreurs de formulaires
    Par vladimire dans le forum Langage
    Réponses: 4
    Dernier message: 01/04/2010, 20h40
  3. [1.x] Séparer l'affichage des erreurs de formulaires
    Par nims dans le forum Symfony
    Réponses: 6
    Dernier message: 06/11/2009, 11h09
  4. Gestion des erreurs de formulaire
    Par TempusFugit dans le forum Langage
    Réponses: 4
    Dernier message: 29/10/2009, 15h34
  5. Réponses: 0
    Dernier message: 07/08/2009, 11h56

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