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 :

Modifier la couleur d'un texte en fonction de sa valeur SQL dans Symfony [2.x]


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 236
    Par défaut Modifier la couleur d'un texte en fonction de sa valeur SQL dans Symfony
    Bonjour,

    Je débute sur Symfony, je cherche à modifier la couleur d'un champ d'un tableau en fonction de sa valeur en base, exemple :

    http://www.noelshack.com/2016-10-1457345416-capture.png

    Dans l'image ci-dessus, il y a un champ avec comme valeur pour la colonne "enabled" à "0".

    J'arrive à afficher toutes les valeurs que je désire en fonction de ma recherche, exemple :

    http://www.noelshack.com/2016-10-1457345524-capture.png

    Pour les personnes portant le prénom de "Nicolas", j'affiche les utilisateurs avec un "enabled" à 0 ou 1 :

    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
        public function findActiveUsersByOrganizationQuery($pos, $absent = null, $sourceId = false, $lead = false, $appointment = false, $keywords = null, $sort = array(), $enabled = false)
        {
            if (!is_array($pos)) {
                $pos = array($pos);
            }
     
            $sort = $this->checkSort($sort);
     
            $qb = $this->createQueryBuilder('u')
                    ->where('u.organization IN(:pos)')
                    ->leftJoin('u.organization', 'p')
                    ->setParameter('pos', $pos);
     
            /* SELECT * FROM User u LEFT JOIN u.organization p WHERE u.organization IN(:pos)  */
     
            if ($sourceId === false) {
     
            } elseif (is_null($sourceId)) {
                $qb->leftJoin('u.assignedSources', 's')
                        ->andWhere('s.id IS NULL');
            } else {
                $qb->leftJoin('u.assignedSources', 's')
                        ->andWhere('s.id = :source')
                        ->setParameter('source', $sourceId);
            }
     
            if ($appointment) {
                $qb->andWhere('u.availableForAppointment = :appointment')
                        ->setParameter('appointment', true);
            }
            if ($lead) {
                $qb->andWhere('u.availableForLead = :lead')
                        ->setParameter('lead', true);
            }
     
            if (!is_null($absent)) {
                $qb->andWhere('u.absent = :absent')
                        ->setParameter('absent', $absent);
            }
     
            if (!is_null($keywords)) {
                $qb = $this->addKeywordsSubquery($qb, $keywords);
            }
     
            if ($enabled) {
                $qb->andWhere('u.enabled = :enabled')
                        ->setParameter('enabled', $enabled);
            }
            $qb->orderBy($sort['sortColumn'], $sort['sortOrder']);
     
            return $qb;
        }
     
        public function findActiveUsersByOrganization($pos, $absent = null, $sourceId = false, $lead = false, $appointment = false, $keywords = null, $sort = array(), $enabled = false)
        {
            return $this->findActiveUsersByOrganizationQuery($pos, $absent, $sourceId, $lead, $appointment, $keywords, $sort, $enabled)->getQuery()->getResult();
        }
    La vue :

    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
    {% if route is not defined %}
    {% set route = null %}
    {% endif %}
    <table>
        <tr>
            {% include 'CarvivoCrmBundle:Common:_sortColumn.html.twig' with {'route' : route, 'column' : 'nom', 'label': 'Identité'|trans} %}
            {% include 'CarvivoCrmBundle:Common:_sortColumn.html.twig' with {'route' : route, 'column' : 'pos', 'label': 'Point de vente'|trans} %}
            <th>{{ 'Sources'|trans }}</th>
            <th class="center">{{ 'Leads en cours'|trans }}</th>
            <th>{{ 'Liens vers les stats'|trans }}</th>
        </tr>
     
        {% for user in users %}
        <tr class="{% if loop.index%2 == 0 %}even{% else %}odd{% endif %}">
            <td>{{ user.name }} {{ user.enabled }}</td>
            <td>{{ user.organization.name }}</td>
            <td>{{ user.stringSources }}</td>
            <td class="center">{{ nbLeads(user) }}</td>
            <td class="actions nowrap">
                {% include 'CarvivoCrmBundle:Common:_picto.html.twig' with {'class': 'icon-pie ajax-box', 'link': path('operator_statistics_pos', {'pos': user.organization.id }), 'text': 'Voir les stats'|trans } %}
            </td>
        </tr>
        {% else %}
        <tr><td class="no-data" colspan="{{ 8 + ('pos' in tds) }}">{{ 'Pas de résultat'|trans }}</td></tr>
        {% endfor %}
     
    </table>
    Je désire afficher les utilisateur ayant un champ "enabled" à "0" en rouge, pourriez-vous m'indiquer une piste à suivre s'il vous plaît ?

    Merci

  2. #2
    Membre émérite
    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
    Par défaut
    J'espere que j'ai compris :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    {% for user in users %}
    	{% if user.enabled  == 0%} 
    		 {% set color = red %}     
            {%endif%}
        <tr class="{% if loop.index%2 == 0 %}even{% else %}odd{% endif %}" style="color:{{color}}">
    bonne journée

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 236
    Par défaut
    Merci c'est exactement ça t'es un génie !

    EDIT : C'est presque fini, il faut que si l'utilisateur a un statut "enabled" à 0, un bouton s'affiche dans le tableau pour pouvoir le passer à "1".

    Cela peut se faire dans le fichier twig ?

  4. #4
    Membre émérite
    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
    Par défaut
    oui , si tu veux faire quelque chose de mignant, tu aura besoin peut etre d'ajax .
    Code JS (dans twig):
    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
     
    {% if user.enabled  == 0%} 
    	 <input type="submit" value="Enable it" id="enabled"/>    
    	  <script type="text/javascript"> <!-- ddans ce code js user .id designe l id du user concerné -->
                $(function() {
                    $("#enabled").click(function(e) {
                        // On sélectionne le formulaire par son identifiant
                        e.preventDefault(); // Le navigateur ne peut pas envoyer le formulaire  
                        $.ajax({
                            type: 'post',
                            url: "{{path('actionEnable',{id:user.id} ) }}", // une simple action qui aura en param un id user pour le mettre enable
                            data: $(this).serialize(),
                            datatype: "json",
                            cache: false,
                            success: function(data)
                            {
                                $('.tr').html(data); // le tr du user déja modifié :D , il faut la mettre a jour
                            }
                        });
                        return false;
                    });
                });
            </script>       
     
    {%endif%}
    Pour le code php:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     
    //
      if ($request->isXmlHttpRequest()) {
     $user = $em->getRepository('UserBundle:user')->find($id);
    $user->setEnable(true);
       $em->persist($user);
       $em->flush();
    ///
     return $this->container->get('templating')->renderResponse(' la div a rafraichier',array('user'=>$user);
    }
    Fin de la route

  5. #5
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 236
    Par défaut
    Merci encore pour ton aide ! J'ai réussi à faire ce que je voulais .

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 24/02/2010, 16h27
  2. Mettre en couleurs un texte en fonction de sa valeur.
    Par yann123456 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 05/02/2008, 16h34
  3. Réponses: 7
    Dernier message: 05/04/2007, 23h09
  4. Réponses: 1
    Dernier message: 08/06/2006, 12h01
  5. modifier la couleur d'un texte dans un input text
    Par mic79 dans le forum Mise en page CSS
    Réponses: 8
    Dernier message: 05/01/2005, 16h45

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