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 :
Cela ne s'affiche ni dans l'en-tête, ni dans le corps.
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(); ?>
EDIT :
Ma variable de session n'a pas l'air d'arriver dans mon code car quand je fais ceci :
j'obtiens ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part $pdf->Cell(40,10,'requete sql : '.$sql_annee,0,'C');
Je crée ma variable de session en AJAX, c'est-à-dire que :SELECT Nom_complet FROM annees WHERE NOM_ANNEE = ''
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 JS (Ajax) :
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 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
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); }
Merci d'avance et bon Dimanche.
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']; ?>
beegees
Partager