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 :

Utilisation de classe CSS et FORMTYPE


Sujet :

Symfony PHP

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2015
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Juin 2015
    Messages : 68
    Points : 40
    Points
    40
    Par défaut Utilisation de classe CSS et FORMTYPE
    Bonjour à tous,

    J'aimerais utiliser les bonnes pratiques de Symfony, pour cela je m'efforce de suivre les recommandations du guide officiel.
    Mon problème intervient à l'association de css dans les formType.

    Je pense que je n'utilise pas correctement les classes, j'ai formulaire html, j'ai un formType fonctionnel. Mais le soucis c'est quand j'affecte des classes CSS dans la balise form.

    Si je reste avec les balises CSS :

    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
     
    <form action="{{ path('recruting') }}" method="post" class="formoid-solid-green formbootstrapcustom">
                {#{{ form_start(form, {'attr': {'class': 'formoid-solid-green formbootstrapcustom'}}) }}#}
     
                <div class="element-input">
                    <label class="title">
                        <span class="required">*</span>
                    </label>
                    <div class="item-cont">
                        <input class="large" type="text" name="input" required="required" placeholder="Nom"/>
                        {#{{ form_row(form.name) }}#}
                        <span class="icon-place"></span>
                    </div>
                </div>
     
                <div class="element-input"><label class="title"></label>
                    <div class="item-cont">
                        <input class="large" type="text" name="input10" placeholder="Prénom"/>
                        {#{{ form_row(form.lastName) }}#}
     
                        <span class="icon-place"></span>
                    </div>
                </div>
     
                <div class="element-date">
                    <label class="title"></label>
                    <div class="item-cont">
                        <input class="large" data-format="yyyy-mm-dd" type="date" name="date"
                               placeholder="Date de naissance"/>
                        {#{{ form_row(form.birthDate) }}#}
                        <span class="icon-place"></span>
                    </div>
                </div>
     
                <div class="element-input">
                    <label class="title"></label>
                    <div class="item-cont">
                        <input class="large" type="text" name="input11" placeholder="Ville"/>
                        {#{{ form_row(form.city) }}#}
     
                        <span class="icon-place"></span>
                    </div>
                </div>
     
                <div class="element-email">
                    <label class="title"></label>
                    <div class="item-cont">
                        <input class="large" type="email" name="email" value="" placeholder="Email"/>
                        {#{{ form_row(form.mail) }}#}
     
                        <span class="icon-place"></span>
                    </div>
                </div>
     
                <div class="element-phone">
                    <label class="title"></label>
                    <div class="item-cont">
                        <input class="large" type="tel" pattern="[+]?[\.\s\-\(\)\*\#0-9]{3,}" maxlength="24" name="phone"
                               placeholder="Mobile" value=""/>
                        {#{{ form_row(form.mobile) }}#}
     
                        <span class="icon-place"></span>
                    </div>
                </div>
     
                <div class="element-radio">
                    <label class="title">Permis de conduire</label>
                    <div class="column column2">
                        <label>
                            <input type="radio" name="radio" value="Permis A"/>
                            {#{{ form_row(form.licenceA) }}#}
     
                            <span>Permis A</span>
                        </label>
                    </div>
                </div>
    <div class="submit"><input type="submit" value="Envoyer"/></div>
            </form>
    le rendu :
    Nom : Capture d’écran 2016-08-24 à 08.17.57.png
Affichages : 1159
Taille : 71,0 Ko

    Mais quand j'insère le formType :
    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
     
    {#<form action="{{ path('recruting') }}" method="post" class="formoid-solid-green formbootstrapcustom">#}
                {{ form_start(form, {'attr': {'class': 'formoid-solid-green formbootstrapcustom'}}) }}
     
                <div class="element-input">
                    <label class="title">
                        <span class="required">*</span>
                    </label>
                    <div class="item-cont">
                        {#<input class="large" type="text" name="input" required="required" placeholder="Nom"/>#}
                        {{ form_row(form.name) }}
                        <span class="icon-place"></span>
                    </div>
                </div>
     
                <div class="element-input"><label class="title"></label>
                    <div class="item-cont">
                        {#<input class="large" type="text" name="input10" placeholder="Prénom"/>#}
                        {{ form_row(form.lastName) }}
     
                        <span class="icon-place"></span>
                    </div>
                </div>
     
                <div class="element-date">
                    <label class="title"></label>
                    <div class="item-cont">
                        {#<input class="large" data-format="yyyy-mm-dd" type="date" name="date"#}
                               {#placeholder="Date de naissance"/>#}
                        {{ form_row(form.birthDate) }}
                        <span class="icon-place"></span>
                    </div>
                </div>
     
                <div class="element-input">
                    <label class="title"></label>
                    <div class="item-cont">
                        {#<input class="large" type="text" name="input11" placeholder="Ville"/>#}
                        {{ form_row(form.city) }}
     
                        <span class="icon-place"></span>
                    </div>
                </div>
     
                <div class="element-email">
                    <label class="title"></label>
                    <div class="item-cont">
                        {#<input class="large" type="email" name="email" value="" placeholder="Email"/>#}
                        {{ form_row(form.mail) }}
     
                        <span class="icon-place"></span>
                    </div>
                </div>
     
                <div class="element-phone">
                    <label class="title"></label>
                    <div class="item-cont">
                        {#<input class="large" type="tel" pattern="[+]?[\.\s\-\(\)\*\#0-9]{3,}" maxlength="24" name="phone"#}
                               {#placeholder="Mobile" value=""/>#}
                        {{ form_row(form.mobile) }}
     
                        <span class="icon-place"></span>
                    </div>
                </div>
     
                <div class="element-radio">
                    <label class="title">Permis de conduire</label>
                    <div class="column column2">
                        <label>
                            {#<input type="radio" name="radio" value="Permis A"/>#}
                            {{ form_row(form.licenceA) }}
     
                            <span>Permis A</span>
                        </label>
                    </div>
                </div>
    <div class="submit"><input type="submit" value="Envoyer"/></div>
            {#</form>#}
            {{ form_rest(form) }}
            {{ form_end(form) }}
    On peut voir que les boutons radios ont disparut :
    Nom : Capture d’écran 2016-08-24 à 08.21.54.png
Affichages : 1144
Taille : 78,8 Ko

    Voici mon formType :
    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
     
    $builder
                ->add('name', null, array(
                    'label' => ' ',
                    'attr' => array(
                        'placeholder' => 'Nom',
                        'class' => 'large')
                ))
                ->add('lastName', null, array(
                    'label' => ' ',
                    'attr' => array(
                        'placeholder' => 'Prénom',
                        'class' => 'large')
                ))
    //
                ->add('birthDate', null, array(
                    'widget' => 'single_text',
                    'input' => 'datetime',
                    'format' => 'yyyy-MM-dd',
                    'label' => ' ',
                    'attr' => array(
                        'placeholder' => 'Date de naissance',
                        'class' => 'large date')
                ))
                ->add('city', null, array(
                    'label' => ' ',
                    'attr' => array(
                        'placeholder' => 'Ville',
                        'class' => 'large')
                ))
                ->add('mail', null, array(
                    'label' => ' ',
                    'attr' => array(
                        'placeholder' => 'Email',
                        'class' => 'large')
                ))
                ->add('mobile', null, array(
                    'label' => ' ',
                    'attr' => array(
                        'placeholder' => 'Numéro de téléphone',
                        'class' => 'large')
                ))
                ->add('licenceA', CheckboxType::class, array(
                    'label'    => 'Permis A',
                    'required' => false,
                    'attr' => array('class' => ''),
                ))
                ->add('licenceB', CheckboxType::class, array(
                    'label'    => 'Permis B',
                    'required' => false,
                ));
    }
    Merci de l'entraide 😊

  2. #2
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2013
    Messages
    739
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2013
    Messages : 739
    Points : 1 022
    Points
    1 022
    Par défaut
    Bonjour,
    au lieu d'utiliser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {{ form_row(form.age) }}
    utilise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <div>
        {{ form_label(form.age) }}
        {{ form_errors(form.age) }}
        {{ form_widget(form.age) }}
    </div>
    Parfois le style d'un element dom dépend d'une hiérarchie de classe css, pour avoir la meme vue la template statique il faut suivre la même hiérarchie.

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2015
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Juin 2015
    Messages : 68
    Points : 40
    Points
    40
    Par défaut
    C'étais bien cela, merci !!

    Je cherche également à mettre des contraintes dans la saisie du formulaire, notamment pour le mail, sur la doc symfony on utilise CheckMX
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     /**
         * @Assert\Email(
         *     message = "The email '{{ value }}' is not a valid email.",
         *     checkMX = true
         * )
         */
         protected $email;
    Seulement quand je l'utilise ca crash la page et aucune persistance ce fait .


    De plus, mon formulaire permet de sélectionner sa date de naissance via un calendrier, mais les mois et jours sont en anglais, aurait-il un moyen de le traduire en français ?
    J'ai pourtant modifié ma timezone en Europe/Paris ainsi que mon config.yml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    twig:
        debug:            "%kernel.debug%"
        strict_variables: "%kernel.debug%"
        date:
                timezone: Europe/Paris

  4. #4
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2013
    Messages
    739
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2013
    Messages : 739
    Points : 1 022
    Points
    1 022
    Par défaut
    pour la premiere question , tu as peut etre oublié :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    use Symfony\Component\Validator\Constraints as Assert;
    pouur la deuxieme question , je te conseile d'utiliser Datepicker ou Datetimepicker de JQuery.
    C'est trés complet , c'est mignon et ca change de langue selon la locale de ta session.

    Pour la langue , c'est sur que tu as la locale " en " dans le fichier config.

  5. #5
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2015
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Juin 2015
    Messages : 68
    Points : 40
    Points
    40
    Par défaut
    Si j'ai bien utilisé : use Symfony\Component\Validator\Constraints as Assert;

    Dac, je vais regarder de ce coté là, merci 😊

Discussions similaires

  1. [CR 2008] Utilisation de classe css
    Par lazzeroni dans le forum SAP Crystal Reports
    Réponses: 0
    Dernier message: 02/05/2012, 14h41
  2. Utiliser une classe CSS sans l'attribuer à une balise HTML
    Par islogged dans le forum Mise en page CSS
    Réponses: 9
    Dernier message: 20/07/2011, 21h23
  3. [Taglibs] Utiliser les classes css ?
    Par PeteMitchell dans le forum Struts 1
    Réponses: 4
    Dernier message: 05/05/2007, 01h31
  4. [débutante]utiliser les classes css pour surligner des liens
    Par Mitaka dans le forum Général JavaScript
    Réponses: 18
    Dernier message: 06/01/2006, 09h37

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