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

HTML Discussion :

Matrice de maturité


Sujet :

HTML

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Etudiant L3 MIAGE
    Inscrit en
    Juin 2014
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Etudiant L3 MIAGE
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2014
    Messages : 36
    Par défaut Matrice de maturité
    Bonjour,

    Je travail sur un module d'une application web qui génère une matrice dans laquelle est affiché les réponses à un entretient.
    Un entretient est le fait de répondre à une panel de question par : Oui, Non, NSP, NA.

    Mon but étant de générer automatiquement ma matrice une fois l'entretient réalisé, ça devrait ressembler à ça :
    Nom : matrice.PNG
Affichages : 583
Taille : 4,1 Ko

    cela nous rend donc une matrice, où la case [1,1] est grisée car la réponse a cette question 1 est "Non", la case [1,5] est jaune car elle correspond au niveau de maturité EFFICACE et la réponse a cette question 5 à été "OUI".

    Imaginons une autre couleur pour le "NA" et le "NSP".

    Je cherche donc des idées pour développer ça en HTML et PHP car je ne vois pas trop comment réaliser cela.

    Si ce n'est pas clair n'hésitez pas à me demander plus d'informations.

    Merci

  2. #2
    Membre Expert
    Homme Profil pro
    tripatouilleur de code pour améliorer mon quotidien boulistique
    Inscrit en
    Février 2008
    Messages
    946
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : tripatouilleur de code pour améliorer mon quotidien boulistique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2008
    Messages : 946
    Par défaut
    Bonjour

    Question bête :
    votre matrice (donc vos réponses) ne vient-elle pas d'une base de données?
    Si oui, quelle serait la requête du résultat à afficher?

    Pierre

  3. #3
    Membre averti
    Homme Profil pro
    Etudiant L3 MIAGE
    Inscrit en
    Juin 2014
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Etudiant L3 MIAGE
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2014
    Messages : 36
    Par défaut
    Tout à fait, les réponses sont stockées dans un fichier JSON de la manière suivante :
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    [{"idPdc":1,"reponse":"yes","idPers":"0","idProjet":"0"},{"idPdc":2,"reponse":"no","idPers":"0","idProjet":"0"}]
    idPdc = l'id de la question
    idPers = l'id de la personne interviewée
    idProjet = projet auquel l'interview est rattachée

    Donc pour récupérer les réponses je ferais quelque chose de ce type (j'utilise le framework codeIgniter) :
    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public function recupInfosInterview(){
         $contenu = read_file('bddJson/resultatInterview.json'); //Fichier Json contenant les réponses
         $array = json_decode($contenu, true);
         $cedontonabesoin = array();
               foreach($contenu as $key=>$value){
                   $cedontonabesoin = ; //a voir en fonction de ce dont on a besoin
               } 
    return $cedontonabesoin;
    }

    Cela nous retourne donc un tableau PHP qui contient ce dont on a besoin.

    En suite, on envoie ce tableau à la vue via le controler de la manière suivant :
    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public function resInterview (){
         $data['resultatInterview']=$this->model->recupInfosInterview();
         $this->load->view('vueDeNotreChoix', $data); //on passe $data en paramètre de la vue donc on peut utiliser le contenu du tableau PHP préalablement remplis dans le model
    }

    Je sais pas si c'est plus clair maintenant ?


    (Ce que je souhaite donc, c'est faire quelque chose d'un peu sexy (je sais pas si il existe autre chose que deux FOR imbriqués, ou alors si il n'y a que ça comment le rendre agréable à regarder)

  4. #4
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 211
    Par défaut
    Bonjour,
    tu es dans le cas typique de l'utilisation des « class » sur tes éléments <td> suivant la réponse contenue.

  5. #5
    Membre averti
    Homme Profil pro
    Etudiant L3 MIAGE
    Inscrit en
    Juin 2014
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Etudiant L3 MIAGE
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2014
    Messages : 36
    Par défaut
    Cela peut résoudre le problème du "sexy" en effet.
    Cependant j'ai eu une nouvelle information hier, on remarque que sur l'image (cf. post1) qu'il y a 16 ligne, seulement, il peut y en avoir moins en fonction des personnes. Donc il faut que la matrice soit "générée" automatiquement. Une personne peut donc répondre à 16 séries de question comme à 4 ...
    On remarque également que le nombre de cellule par ligne n'est pas équivalent pour chaque ligne, il n'est donc pas possible de générer une matrice, ou alors je ne sais pas faire !

    J'ai donc, en attendant de trouver mieux, générer chaque ligne de la manière suivante, en fonction de $value['1'] qui correspond à un identifiant propre à chaque ligne (pour faire simple) de la manière suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    foreach ($resInterview as $key => $value) {
                    if (preg_match($pattern1, $value['1'])) {
                        ?><td><?php echo $key . $value['1']; ?></td><?php
                    }
                }

    Merci pour vos réponses en tout cas

  6. #6
    Membre averti
    Homme Profil pro
    Etudiant L3 MIAGE
    Inscrit en
    Juin 2014
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Etudiant L3 MIAGE
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2014
    Messages : 36
    Par défaut
    J'ai réussi à régler mon problème. Je link le code de la génération des tableaux au cas où certains en aurait besoin ou si cela peut inspirer.

    C'est un peu "manouche" mais ça fonctionne, il ne me reste plus qu'a m'occuper du style de mes tableaux ... le bonheur ...

    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
     
    <html>
        <head>
            <meta charset="UTF-8">
            <title></title>   
            <style>
                .yes{
                    color: green;
                } 
                .no{
                    color: red;
                }
                .nsp{
                    color: orange;
                }
                .na{
                    color: grey;
                }
                .box {
                    float: left;
                }
            </style>
        </head>
        <body>   
            <?php
            $delim = array();
            $delim[] = "/.c./";
            $delim[] = "/.e./";
            $delim[] = "/.o./";
            $pattern = array();
            $pattern[] = "/01/";
            $pattern[] = "/02/";
            $pattern[] = "/03/";
            $pattern[] = "/04/";
            $pattern[] = "/05/";
            $pattern[] = "/06/";
            $pattern[] = "/07/";
            $pattern[] = "/08/";
            $pattern[] = "/09/";
            $pattern[] = "/10/";
            $pattern[] = "/11/";
            $pattern[] = "/12/";
            $pattern[] = "/13/";
            $pattern[] = "/14/";
            $pattern[] = "/15/";
            $pattern[] = "/16/";
     
            for ($j = 0; $j < 3; $j++) {
                ?>
                <div class="box">
                    <table border="1" >            
                        <tr><?php
                            for ($i = 0; $i < 16; $i++) {
                                foreach ($resInterview as $key => $value) {
                                    if (preg_match($pattern[$i], $value['1'])) {
                                        if (preg_match($delim[$j], $value['1'])) {
                                            if ($value['0'] == "yes") {
                                                ?><td class="yes"><?php echo $value['1']; ?></td>
                                            <?php } elseif ($value['0'] == "no") { ?> <td class="no"><?php echo $value['1']; ?></td>
                                            <?php } elseif ($value['0'] == "nsp") { ?> <td class="nsp"><?php echo $value['1']; ?></td>
                                            <?php } elseif ($value['0'] == "na") { ?> <td class="na"><?php echo $value['1']; ?></td>
                                            <?php } else { ?> <td></td>
                                                <?php
                                            }
                                        }
                                    }
                                }
                                ?></tr><?php
                        }
                        ?>
                    </table>
                </div>
    <?php } ?>       
        </body>
    </html>

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

Discussions similaires

  1. matrices * vecteur
    Par delire8 dans le forum Algorithmes et structures de données
    Réponses: 15
    Dernier message: 07/09/2002, 14h15
  2. [CR] entête et pied sur page 1/B de matrice
    Par chloe.j3 dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 04/09/2002, 12h07
  3. Matrice de filtrage ?
    Par gimlithedwarf dans le forum Traitement d'images
    Réponses: 2
    Dernier message: 24/08/2002, 09h44
  4. Gestion de matrice
    Par bzd dans le forum C
    Réponses: 4
    Dernier message: 12/08/2002, 18h19
  5. Comment définir le type matrice ?
    Par charly dans le forum Langage
    Réponses: 7
    Dernier message: 15/06/2002, 21h01

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