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