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] Utiliser variables dans PDF


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre expérimenté
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par défaut [FPDF] Utiliser variables dans PDF
    Bonjour tout le monde,

    J'essaie d'afficher la valeur d'une variable de session dans un PDF avec FPDF mais je n'y arrive pas.

    J'ai pourtant déjà effectué ce genre de tâche sans problème

    Voici mon 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
    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
    <?php
    session_start();
    require('../fpdf.php');
     
    //Connexion a la base
    mysql_connect('localhost','root','mdp');
    mysql_select_db('pharma');
     
    $sql_annee = "SELECT Nom_complet FROM annees WHERE NOM_ANNEE = '".$_SESSION['choix_annee']."'";
    $req_annee = mysql_query($sql_annee);
    $annee = mysql_fetch_array($req_annee);
     
    class PDF extends FPDF
    {
    //En-tête
    function Header()
    {
        //Logo
        $this->Image('../../Images/logo.png',10,8,17);
        //Police Arial gras 15
        $this->SetFont('Arial','B',12);
        //Décalage à droite
        $this->Cell(80);
        //Titre
    	//$pdf->Cell(56,10,'Filiere choisie : ' . $_SESSION['Filiere_actuelle'] ); 
        $this->Cell(30,10,'Institut de journalisme : '. $annee['Nom_complet'],0,'C');
        //Saut de ligne
        $this->Ln(20);
    }
     
    }
     
    //Instanciation de la classe dérivée
    $pdf=new PDF();
    $pdf->AddPage();
    $pdf->SetFont('Arial','B',16);
    $pdf->Cell(40,10,'Institut de Pharmacie : '.$_SESSION['choix_annee'],0,'C');
    $pdf->Ln();
    $pdf->Cell(30,10,'Institut de Pharmacie : '. $annee['Nom_complet'],0,'C');
    $pdf->AliasNbPages();
    $pdf->Output();
    ?>
    Cela ne s'affiche ni dans l'en-tête, ni dans le corps.

    EDIT :

    Ma variable de session n'a pas l'air d'arriver dans mon code car quand je fais ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $pdf->Cell(40,10,'requete sql : '.$sql_annee,0,'C');
    j'obtiens ceci :

    SELECT Nom_complet FROM annees WHERE NOM_ANNEE = ''
    Je crée ma variable de session en AJAX, c'est-à-dire que :

    1) sur le changement d'une liste déroulante, j'appelle une fonction js qui envoie en paramètre la valeur de la liste déroulante.
    2)J'envoie à PHP (AJAX) la valeur
    3) la valeur postée est transformée en variable de session

    J'ai vérifié le retour, ça fonctionne, voici quand même le code au cas où :

    Code de la liste déroulante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     <select name="select" onchange="Creer_var_session(this.value),window.open('RN.php')">
            <option>Choisissez une année</option>
    		<option>BA1</option>
            <option>BA2</option>
            <option>BA3</option>
            <option>MA1</option>
            <option>MA2</option>
          </select>
    code JS (Ajax) :

    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
    function getXhr()
    {
    	var xhr = null; 
    	if(window.XMLHttpRequest) // Firefox et autres
    	xhr = new XMLHttpRequest(); 
    	else if(window.ActiveXObject){ // Internet Explorer 
    	try {
    		xhr = new ActiveXObject("Msxml2.XMLHTTP");
    		} catch (e) {
    		xhr = new ActiveXObject("Microsoft.XMLHTTP");
    		}
    	} else { // XMLHttpRequest non supporté par le navigateur 
    	alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
    	xhr = false; 
    	} 
    	return xhr;
    }
     
    function Creer_var_session(choix_annee)
    {
    		var xhr = getXhr();
     
    	//si choix_annee correspond à "choisissez une année, je ne tiens pas compte (avec return)"
    	if(choix_annee.length > 3) return;
    	//alert(choix_annee);
     
    		xhr.onreadystatechange = function()
    		{
    			//alert(xhr.readyState);
    			//alert(xhr.status);
     
    			if(xhr.readyState == 4 && xhr.status == 200)
    			{
    				retour = xhr.responseText;
    				//alert("le retour " + retour);
    				document.getElementById('ca').innerHTML = retour; 
    				//window.open('PDF/resume_cours.php');				
    			}
    		}
     
     
    		// Ici on va voir comment faire du post
    		//j'ouvre le fichier Scripts/Comptage.php
    		xhr.open("POST","AJAX/creer_var_sess.php",true);
    		// ne pas oublier ça pour le post
    		//indispensable pour le POST	
    		xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    		xhr.send("choix_annee="+choix_annee);
    }
    Code PHP :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php
     
    //var_dump($_POST);
     
    //Transformation de la variable javascript (passé dans le $_POST) en variable de session PHP
     
    $_SESSION['choix_annee'] = $_POST['choix_annee'];
     
    $sql_annee = "SELECT Nom_complet FROM annees WHERE NOM_ANNEE = '".$_SESSION['choix_annee']."'";
     
     
    echo $_SESSION['choix_annee'];
     
    ?>
    Merci d'avance et bon Dimanche.

    beegees

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Tu devrais suivre ta variable pour voir entre quels etapes il disparait : tout ce qui se passe avant ou apres ne te sers a rien.

    A mon avis, ton id de session ne suit pas a une de tes étapes, tu devrais controler cela.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre expérimenté
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Tu devrais suivre ta variable pour voir entre quels etapes il disparait : tout ce qui se passe avant ou apres ne te sers a rien.

    A mon avis, ton id de session ne suit pas a une de tes étapes, tu devrais controler cela.
    Salut Sabotage,

    J'ai trouvé l'erreur :

    Dans ce 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
    <?php
     
    //var_dump($_POST);
     
    //Transformation de la variable javascript (passé dans le $_POST) en variable de session PHP
     
    $_SESSION['choix_annee'] = $_POST['choix_annee'];
     
    $sql_annee = "SELECT Nom_complet FROM annees WHERE NOM_ANNEE = '".$_SESSION['choix_annee']."'";
     
     
    echo $_SESSION['choix_annee'];
     
    ?>
    J'avais oublié session_start().

    Merci pour ton aide très appréciée et très précieuse.

    beegees

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

Discussions similaires

  1. Utiliser variable dans une zone de texte
    Par maxime350 dans le forum IHM
    Réponses: 11
    Dernier message: 09/04/2008, 20h54
  2. Utilisation variable dans fonction
    Par Jiraiya42 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 29/01/2008, 17h22
  3. [FPDF] Fonction WriteTable() dans PDF
    Par brida dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 22/10/2007, 21h10
  4. Utilisation variable dans script expect
    Par fdesarmes dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 27/07/2007, 11h53
  5. [XSL] impossible d'utiliser variable dans expression XPATH
    Par pierre.zelb dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 18/01/2006, 07h41

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