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

Langage PHP Discussion :

afficher un tableau en MVC


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de grinder59
    Inscrit en
    Septembre 2005
    Messages
    710
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 710
    Par défaut afficher un tableau en MVC
    Bonjour,

    je développe actuellement une application et je tente de la faire en appliquant le modèle MVC afin de m'y retrouver un peu.

    Je dois afficher un tableau pour lequel les lignes paires et impaires n'ont pas la même couleur. En outre, les colonnes ont -parfois- des styles différents (alignement à droite par exemple)...

    Pour le moment, je passe à ma vue un tableau d'objet et j'affiche les champs de mes objets dans les cellules du tableau (j'utilise mysqli::fetch_object pour récupérer les résultats de ma requête dans un tableau).

    Résultat, j'ai une boucle foreach dans la vue et pour chaque objet affiché j'ai une "sous-vue" (dans un autre fichier) qui décrit le style de la cellule de la façon suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <td style=<?php echo $this->$styleColonne;?>><?php echo $this->$colonne;?></td>
    Est-ce la meilleure façon de faire ? parce qu'une vue pour une cellule de tableau, ça me parait aberrant.
    Question subsidiaire : comment géreriez vous l'affichage de couleur différent entre les lignes paires et impaires ?

    Merci de vos conseils !

  2. #2
    Expert confirmé
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Par défaut
    Question subsidiaire : comment géreriez vous l'affichage de couleur différent entre les lignes paires et impaires ?
    comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    tr td { background-color: white; }
    tr:nth-child(2n) td { background-color: red; }
    Est-ce la meilleure façon de faire ? parce qu'une vue pour une cellule de tableau, ça me parait aberrant.
    En effet, c'est généralement pour ce genre de besoins qu'on utilise des helpers.

    Exemple du mien:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $table = TableHelper::export(i18n('users.table.title'))->setClass('full sortable');
    $table->setColumnNames($columns);
    $table->body->addRows($collection);
     
    echo $table;

  3. #3
    Membre éclairé Avatar de grinder59
    Inscrit en
    Septembre 2005
    Messages
    710
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 710
    Par défaut
    merci pour ta réponse !

    nth-child, c'est juste énorme comme gain de code ! Je connaissais pas mais je suis pas près de l'oublier !

    Concernant les helpers, je n'ai rien trouvé d'"officiel" sur le web concernant ce concept... Si j'ai bien compris, c'est un ensemble de méthode qui permettent de construire des structures html "complexes" (genre tableau) ?

    Donc, si j'ai bien compris, dans "setColumnNames", tu créés le titre de colonnes du type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <th>'.$columns[1].'</th>
    <th>'.$columns[2].'</th>
    <th>'.$columns[3].'</th>
    C'est ça ?
    Si oui, cela fait donc intervenir du code html à l'extérieur de la vue... pas bon, non ?

    De plus comment faire si je dois afficher sur une même ligne des cellules avec une valeur simple et d'autres avec un champs texte ? (en supposant que la ligne soit en modification, mais que certains champs soient bloqués)

  4. #4
    Expert confirmé
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Par défaut
    Non, pas nécéssairement, regarde le code de mon helper de base pour les vues: https://github.com/bdelespierre/php-...lper.class.php

    Tu vois du HTML ?

  5. #5
    Membre éclairé Avatar de grinder59
    Inscrit en
    Septembre 2005
    Messages
    710
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 710
    Par défaut
    très intéressant en effet !

    j'aurais juste besoin d'une petite précision : Est-ce que tu appelles tes helpers dans les vues ou dans le contrôleur ?

  6. #6
    Expert confirmé
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Par défaut
    Dans les vues. Qu'est ce que ça irait faire dans le contôleur ??

Discussions similaires

  1. [TP] [Débutant] Afficher un tableau en mode graphique
    Par xiungung dans le forum Turbo Pascal
    Réponses: 6
    Dernier message: 13/01/2006, 22h13
  2. Réponses: 3
    Dernier message: 26/09/2005, 22h24
  3. Comment afficher un tableau dans TStringGrid ?
    Par doubledj dans le forum Composants VCL
    Réponses: 3
    Dernier message: 19/09/2005, 02h21
  4. Réponses: 2
    Dernier message: 03/03/2005, 14h57
  5. AFFICHER UN TABLEAU DYNAMIQUE
    Par ghassenus dans le forum Langage
    Réponses: 2
    Dernier message: 28/12/2002, 14h19

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