Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > PDF > FPDF
FPDF Forum d'entraide pour la bibliothèque FPDF permettant de générer des documents PDF en PHP. Avant de poster -> tutoriels FPDF
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 07/07/2011, 14h25   #1
Futur Membre du Club
 
Inscription : décembre 2010
Messages : 74
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 74
Points : 15
Points : 15
Par défaut Insérer image sous condition

Bonjour à tous,

Je souhaite insérer une image selon la valeur d'une variable POST.
Je pensais que ce serait simple mais non comme d'hab.

L'image s'affiche mais ce n'est pas la bonne.

J'ai essayé de décortiquer un peu et je crois que simplement ma variable POST pose problème alors qu'elle est bien initialisée pour moi

Alors qu'est-ce qui ne va pas dans mon code ?

Voici la partie qui concerne le problème:

Code :
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
<?php
session_start();
if(!empty($_POST))
   {
             $_SESSION['rando'] = $_POST;
 
 
   }
$rand = trim($_SESSION['rando']['rando']);
 
// on se connecte Ã* MySQL
$db = mysql_connect('localhost', 'blabla', 'blabla');
 
 
// on sélectionne la base
mysql_select_db('test1',$db);
 
$sql = "SELECT id, nom, date_debut, heure_debut, heure_fin, description, lieu, adresse, email, telephone  FROM agenda where id LIKE '$rand' AND id > '26' ";
 
// on envoie la requête
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
 
// on fait une boucle qui va faire un tour pour chaque enregistrement
$data = mysql_fetch_assoc($req);
 
 
 
    require('fpdf.php');
 
    class PDF extends FPDF
    {
    //En-tête
    function Header()
    {
        //Logo
        $this->Image('../images/folder/gghf.jpg',8,8,45);
		 $this->Image('../images/folder/wcup.jpg',130,8,30);
		  $this->Image('../images/folder/spa.png',8,50,43);
		   $this->Image('../images/folder/o2bikers.png',8,100,43,17);
		    $this->Image('../images/folder/avenir.jpg',8,145,43,17);
			 $this->Image('../images/folder/notube.png',8,175,43,23);
			  $this->Image('../images/folder/fox.jpg',8,220,43);
			  $this->Image('../images/folder/ravx.png',8,260,43,20);
			  $this->Image('../images/folder/ebc.jpg',70,263,30);
			  $this->Image('../images/folder/ked.png',120,260,43,18);
		  $this->Image('../images/folder/petit velo.jpg',52,80,60,110);
 
	}
 
   function test() { 
	if (isset ($data['id']) == '27')
		{
		$this->Image('../images/folder/helios.png',70,8,50,60);	 
		}
		else
		{
		$this->Image('../images/folder/bicyclic.jpg',70,8,50,60);	 
		}
 
   }
 
$pdf=new PDF();
    $pdf->Open();
    $pdf->AliasNbPages();
    $pdf->AddPage();
    $pdf->test();
 
 
$pdf->Output();
legrandse est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/07/2011, 15h13   #2
Membre confirmé
 
Avatar de Retrokiller069
 
Homme Bertrand
Étudiant
Inscription : octobre 2010
Messages : 216
Détails du profil
Informations personnelles :
Nom : Homme Bertrand
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : octobre 2010
Messages : 216
Points : 268
Points : 268
Bonjour,

pourrais tu nous faire un petit print_r($_POST) et print_r($rand) pour voir ce qu'il contienne durant ton opération stp?
__________________
Ce n'est pas ce que nous voulons faire qui est impossible mais ce sont les moyens à sa mise en oeuvre qui peuvent le paraître

Ps: N'oubliez pas SVP
Retrokiller069 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/07/2011, 16h36   #3
Futur Membre du Club
 
Inscription : décembre 2010
Messages : 74
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 74
Points : 15
Points : 15
Hello,


J'ai juste modifié une erreur dans ma fonction car la valeur de $rand doit faire varier la condition et non pas $data['id']

Voici la correction:
Code :
1
2
3
4
5
6
7
8
9
10
11
function test() { 
	if (isset ($rand) == '27')
		{
		$this->Image('../images/folder/helios.png',70,8,50,60);	 
		}
		else
		{
		$this->Image('../images/folder/bicyclic.jpg',70,8,50,60);	 
		}
 
   }
Voici le contenu de :
print_r($_POST) m'affiche Array ( [rando] => 27 )
print_r($rand) m'affiche 27

Donc pour moi il devrait m'afficher l'image helios ben non c'est l'autre
legrandse est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/07/2011, 16h53   #4
Membre confirmé
 
Avatar de Retrokiller069
 
Homme Bertrand
Étudiant
Inscription : octobre 2010
Messages : 216
Détails du profil
Informations personnelles :
Nom : Homme Bertrand
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : octobre 2010
Messages : 216
Points : 268
Points : 268
Citation:
Envoyé par legrandse Voir le message
Code :
1
2
 
	if (isset ($rand) == '27')
je crois que tu devrais faire plutôt ca:
Code :
if (isset ($rand) &&  $rand=='27')
je ne suis pas sur que ca corrige ton problème (je pense que si) mais bon se sera déjà plus propre ^^
__________________
Ce n'est pas ce que nous voulons faire qui est impossible mais ce sont les moyens à sa mise en oeuvre qui peuvent le paraître

Ps: N'oubliez pas SVP
Retrokiller069 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/07/2011, 11h50   #5
Futur Membre du Club
 
Inscription : décembre 2010
Messages : 74
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 74
Points : 15
Points : 15
J'ai essayé à l'instant en modifiant l'initialisation mais à mon grand regret çà ne marche pas. Il m'affiche l'image de Bicyclic alors que l'ID et $rand sont égaux.

C'est fou pour une bête condition le temps passé à ce problème.

Que faire de plus ?

Merci.
legrandse est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/07/2011, 12h10   #6
Membre confirmé
 
Avatar de Retrokiller069
 
Homme Bertrand
Étudiant
Inscription : octobre 2010
Messages : 216
Détails du profil
Informations personnelles :
Nom : Homme Bertrand
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : octobre 2010
Messages : 216
Points : 268
Points : 268
Bonjour,

pourrais tu faire ceci stp, et nous dire ce que ca te renvoie:

et aussi ca temps qu'on y est :

__________________
Ce n'est pas ce que nous voulons faire qui est impossible mais ce sont les moyens à sa mise en oeuvre qui peuvent le paraître

Ps: N'oubliez pas SVP
Retrokiller069 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/07/2011, 16h30   #7
Futur Membre du Club
 
Inscription : décembre 2010
Messages : 74
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 74
Points : 15
Points : 15
Veux-tu dire comme ceci ?

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
$val = ($rand=='27');
 
function test() { 
	if (isset ($val) && $val)
		{
		$this->Image('../images/folder/helios.png',70,8,50,60);	 
		}
		else
		{
		$this->Image('../images/folder/bicyclic.jpg',70,8,50,60);	 
		}
 
   }
J'ai essayé mais j'ai toujours la mauvaise image qui apparait.
legrandse est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/07/2011, 16h43   #8
Futur Membre du Club
 
Inscription : décembre 2010
Messages : 74
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 74
Points : 15
Points : 15
Et bien voilà j'ai trouvé la solution.

j'ai déplacé tout le code de la condition dans l'instanciation de la classe dérivée.

Voilà ce que cela donne:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
 
    $pdf=new PDF();
    $pdf->Open();
    $pdf->AliasNbPages();
    $pdf->AddPage();
if (isset ($rand) && $rand == '27')
		{
		$pdf->Image('../images/folder/helios.png',70,8,50,60);	 
		}
		else
		{
		$pdf->Image('../images/folder/bicyclic.jpg',70,8,50,60);	 
		}
Ce qui m'embête c'est que je ne saurais pas pq cela ne marchait pas dans une fonction.

Enfin c'est le résultat qui compte.
legrandse est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/07/2011, 17h48   #9
Membre confirmé
 
Avatar de Retrokiller069
 
Homme Bertrand
Étudiant
Inscription : octobre 2010
Messages : 216
Détails du profil
Informations personnelles :
Nom : Homme Bertrand
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : octobre 2010
Messages : 216
Points : 268
Points : 268
Heu je crois que je comprends pourquoi ca marcher pas, lorsque tu fais ceci:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
 
    $pdf=new PDF();
    $pdf->Open();
    $pdf->AliasNbPages();
    $pdf->AddPage();
if (isset ($rand) && $rand == '27')
		{
		$pdf->Image('../images/folder/helios.png',70,8,50,60);	 
		}
		else
		{
		$pdf->Image('../images/folder/bicyclic.jpg',70,8,50,60);	 
		}
c'est différent de ca:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
    $pdf=new PDF();
    $pdf->Open();
    $pdf->AliasNbPages();
    $pdf->AddPage();
function test() { 
	if (isset ($rand ) && $rand)
		{
		$this->Image('../images/folder/helios.png',70,8,50,60);	 
		}
		else
		{
		$this->Image('../images/folder/bicyclic.jpg',70,8,50,60);	 
		}
 
   }
car tu n'exécutes pas ta fonction et en plus $rand (dans ta fonction) n'est pas le même que $rand en dehors (c'est un problème de portabilité de variable).

En faisant ceci cela devrait marcher:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$pdf=new PDF();
    $pdf->Open();
    $pdf->AliasNbPages();
    $pdf->AddPage();
$rand=27;
function test($val) { 
	if (isset ($val) && $val=='27')
		{
		$this->Image('../images/folder/helios.png',70,8,50,60);	 
		}
		else
		{
		$this->Image('../images/folder/bicyclic.jpg',70,8,50,60);	 
		}
test($rand);
   }
Si cela marche tu pourras mettre un petit résolue devant ton topic
__________________
Ce n'est pas ce que nous voulons faire qui est impossible mais ce sont les moyens à sa mise en oeuvre qui peuvent le paraître

Ps: N'oubliez pas SVP
Retrokiller069 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h51.


 
 
 
 
Partenaires

Hébergement Web