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

Bibliothèques et frameworks PHP Discussion :

[FPDF] DrawTableau Valeur dynamique


Sujet :

Bibliothèques et frameworks PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 6
    Par défaut [FPDF] DrawTableau Valeur dynamique
    Bonjour à tous !!

    Voilà, je rencontre un problème pour la création d'un tableau qui sera affiché dans un PDF.
    Je m'explique :
    J'ai un questionnaire qui est construit en php via une base de donnée. On m'a demandé de mettre ces resultats sous PDF. Après alors lu les différents tutaux, pas de problème, j'arrive à creer et à formater mon tableau, nickel !!

    Mais voilà, maintenant, on me demande de faire un filtrage des réponses et de n'afficher que certaines données dans ce pdf. Quand cT tout le resultat, j'utilisais ce code: (je vous passe le debut de code ...)

    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
     
    $contenuHeader = array(
                        95, 100,
                        $tabh6[1],"COLSPAN2",
           );
    $contenuTableau = array(
                        "".$tab6[2][1],"".$tab6[2][2]." ".$tab6[2][3],
                        "".$tab6[3][1],"".$tab6[3][2]." ".$tab6[3][3],
                        "".$tab6[4][1],"".$tab6[4][2]." ".$tab6[4][3],
                        "".$tab6[5][1],"".$tab6[5][2]." ".$tab6[5][3],
                        "".$tab6[6][1],"".$tab6[6][2]." ".$tab6[6][3],
                        "".$tab6[7][1],"".$tab6[7][2]." ".$tab6[7][3],
           );    
     
    $PDF->drawTableau($PDF, $proprietesTableau, $proprieteHeader, $contenuHeader, $proprieteContenu, $contenuTableau);
    Maintenant, sur les 6 lignes que j'affichais, je ne dois en afficher 3 par ex (sachant que je ne sais pas d'avance qu'elles sont les lignes qui faudront afficher)

    Dans la doc, j'ai lu que niveau syntaxique, normalement quand j'ai :
    $contenuTableau = array(val1, val2);
    ça équivaut à
    $contenuTableau[0] = val1
    $contenuTableau[1] = val2

    Donc je me dis chouette, dans ce cas, je peux faire mes tests de valeurs en définissant mes variables comme cela

    $contenuTableau[$i][0] = val1
    $contenuTableau[$i][1] = val2

    sachant que $i correspondant au nombre de ligne de mon tableau (en gros je peux avoir x ligne et 4 colonnes)

    Je teste l'affichage du tableau, j'ai bien toutes mes valeurs, donc apres ce code, je rajoute :

    $PDF->drawTableau($PDF, $proprietesTableau, $proprieteHeader, $contenuHeader, $proprieteContenu, $contenuTableau);

    Quand j'ouvre mon pdf, il n'y a pas les données.

    Je suis p-e naïve mais à moins que cela ne fonctionne pas comme cela, ça devrais marcher non ?

    Ou sinon, existerait il un moyen de faire un truc du genre :

    $contenuTableau = array(
    if ($test=='toto') { "".$tab6[2][1],"".$tab6[2][2]." ".$tab6[2][3], }
    else { }
     

    Mais je ne connais pas la syntaxe et si c'est faisable surtout.

    Quelqu'un pourrait il m'aider car là je ne vois pas comment mettre mon filtrage en place

  2. #2
    Membre émérite
    Avatar de jc_cornic
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    623
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 623
    Par défaut
    Salut, tu devrais essayer avec les méthodes array_push
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <?php
    $stack = array ("orange", "banane");
    array_push ($stack, "pomme", "bleuet");
    print_r($stack);
    ?>
    et array_pop
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <?php
    $stack = array("orange", "banane", "pomme", "framboise");
    $fruit = array_pop($stack);
    print_r($stack);
    echo $fruit . "\n";
    ?>
    A+
    JC

    ps: si tu galères trôp, envoie tout le code et j'essaierai de t'aider un peu plus précisément...

    ps2: Par contre, si tu veux changer le nombre de colonnes, tu dois aussi changer le "contenu_header" car c'est lui qui précise le nombre de colonnes en donnant leurs largeurs respectives...

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 6
    Par défaut
    Merci pour ta réponse, je suis désolée, je réponds un peu tard. Enfin de compte, j'ai trouvé un autre moyen de le faire en ne passant pas par les tableaux.

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 6
    Par défaut J'ai un problème analogue.
    J'utilise phpToPDF pour créer des pages .PDF à propos d'un stock de matériel pédagogique. Voici mon code ; d'abord l'entête du tableau :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    // Contenu du header du tableau.	
    $contenuHeader = array(
    	18, 20, 35, 80, 15, 22,
    	"Catégorie", "Référence", "Libellé", "Description", "Étagère", "Année d'acquisition",
    	);
    Puis je cherche mes données dans ma table SQL, pour les afficher dans le tableau :
    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
     
    // Contenu du tableau.
    $recherche=mysql_query("SELECT * FROM etc ... ");
    $nombre=0;
    $donnees="";
    while($fiche=mysql_fetch_array($recherche))
      {
    $nombre++; // incrément de la variable nombre
    $donnees=$donnees.'"'.$fiche['categorie'].'", "'.$fiche['ref'].'", "'.$fiche['libelle'].'", "'.$fiche['description'].'", "'.$fiche['lieu'].'", "'.$fiche['annee'].'", ';
      }
    $PDF->Ln();
    $PDF->write(5,$donnees);// pour voir si ma variable $donnees a bien glané les valeurs que je veux ; j'enlèverai cette ligne quand ça marchera !
    $PDF->Ln();
     
    $contenuTableau = $donnees;
     
    $PDF->Ln();
              if ($nombre > 1) {$PDF->write(10,$nombre." références trouvées.");}
              else {$PDF->write(10,$nombre." référence trouvée.");}
    $PDF->Ln();
     
    // D'abord le PDF, puis les propriétés globales du tableau. 
    // Ensuite, le header du tableau (propriétés et données) puis le contenu (propriétés et données)
    $PDF->drawTableau($PDF, $proprietesTableau, $proprieteHeader, $contenuHeader, $proprieteContenu, $contenuTableau);
    Et voilà le résultat :
    Le mot EPS apparaît avec une lettre par case, alors qu'il devrait être tout entier dans la case "Catégorie", et ainsi de suite pour les autres mots, et le tableau n'a qu'une ligne, alors que j'espérais qu'il en eût 17 ! Voyez la photo ! Au secours !
    Images attachées Images attachées  

  5. #5
    Membre émérite
    Avatar de jc_cornic
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    623
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 623
    Par défaut
    Salut, je pense que le problème vient directement de ta variable $donnees qui n'est pas un tableau mais une chaine de caractères...

    Au lieu de l'incrémenter en faisant $donnees = $donnees . blabla

    Tu devrais utiliser le array_push pour empiler la variable $donnees qui doit etre non pas une chaine de caractères mais un tableau ...

    ++
    JC

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

Discussions similaires

  1. Valeur dynamique dans le champ value des formulaires
    Par djalouk dans le forum Struts 1
    Réponses: 12
    Dernier message: 21/01/2007, 19h42
  2. enrichir l'url avec des valeurs dynamiques
    Par gloglo dans le forum Struts 1
    Réponses: 4
    Dernier message: 03/01/2007, 10h07
  3. Problème sasie des valeurs dynamiques
    Par chetelate dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 18/08/2006, 16h47
  4. [MySQL] Multiples valeurs dynamiques en POST
    Par Runan dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 12/05/2006, 10h44
  5. Réponses: 2
    Dernier message: 07/07/2005, 18h11

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