Variable PHP dans fichier PDF

Monegask26
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 12
Inscription: 28 Juil 2010

Variable PHP dans fichier PDF

Message le Jeu Aoû 05, 2010 23:36

Bonjour à tous !

Pour mon site, j'ai souhaite mettre un formulaire en PHP pour les grossistes qui souhaitent commander des produits en quantité.

Je m'explique avec un exemple basic :

J'ai un champs sur la page dans lequel il faut indiquer le prix d'un article.
Le grossiste inscrit par exemple 10.
A ce moment là, je voudrais qu'un fichier PDF lui soit généré avec un bon de commande sous forme de tableau et avec le chiffre 10 dans un emplacement spécifique comme ceci :

Image

Cet exemple est bien plus complexe, moi je ne veux qu'un simple tableau (voir l'image en dessous).

Voici ce que j'ai :

Le script qui permet de générer un fichier PDF en passant par php (grâce à FPDF) :

Code: Tout sélectionner
<?php
include("phpToPDF.php");

$PDF=new phpToPDF();
$PDF->AddPage();
$PDF->SetFont('Arial','B',16);

// Définition des propriétés du tableau.
$proprietesTableau = array(
   'TB_ALIGN' => 'L',
   'L_MARGIN' => 15,
   'BRD_COLOR' => array(0,92,177),
   'BRD_SIZE' => '0.3',
   );

// Définition des propriétés du header du tableau.   
$proprieteHeader = array(
   'T_COLOR' => array(150,10,10),
   'T_SIZE' => 12,
   'T_FONT' => 'Arial',
   'T_ALIGN' => 'C',
   'V_ALIGN' => 'T',
   'T_TYPE' => 'B',
   'LN_SIZE' => 7,
   'BG_COLOR_COL0' => array(170, 240, 230),
   'BG_COLOR' => array(170, 240, 230),
   'BRD_COLOR' => array(0,92,177),
   'BRD_SIZE' => 0.2,
   'BRD_TYPE' => '1',
   'BRD_TYPE_NEW_PAGE' => '',
   );

// Contenu du header du tableau.   
$contenuHeader = array(
   50, 50, 50,
   "Titre de la première colonne", "année N-1", "année N",
   );

// Définition des propriétés du reste du contenu du tableau.   
$proprieteContenu = array(
   'T_COLOR' => array(0,0,0),
   'T_SIZE' => 10,
   'T_FONT' => 'Arial',
   'T_ALIGN_COL0' => 'L',
   'T_ALIGN' => 'R',
   'V_ALIGN' => 'M',
   'T_TYPE' => '',
   'LN_SIZE' => 6,
   'BG_COLOR_COL0' => array(245, 245, 150),
   'BG_COLOR' => array(255,255,255),
   'BRD_COLOR' => array(0,92,177),
   'BRD_SIZE' => 0.1,
   'BRD_TYPE' => '1',
   'BRD_TYPE_NEW_PAGE' => '',
   );   

// Contenu du tableau.   
$contenuTableau = array(
   "champ 1", 1, 2,
   "champ 2", 3, 4,
   "champ 3", 5, 6,
   "champ 4", 7, 8,
   );
   
   // 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);

$PDF->Output();

?>


Et la page de mon site :

Code: Tout sélectionner
<html>
<center>
<br><br>
<FORM Method="POST" Action="test.php">
Prix : <INPUT type=text value="" size=9 name="prix">
             <INPUT type=submit value="Obtenir le bon de commande PDF">
    </FORM>

    <?php

    if(ISSET($_POST["prix"]))
    {
          $lien1 = ($_POST["prix"]);


         
          echo ' ';
    }

    ?>
</center>
</html>


Mais voilà le problème : echo ' ' permet d'afficher le resultat sous forme texte, donc deja ça ne passe pas. Et de plus, je ne sais pas comment combiner ces deux script. Je voudrais que lorsque le grossiste inscrit "10" dans le champs "prix" et clique sur "Obtenir le bon de commande PDF", un fichier PDF s'ouvre avec le tableau qui est généré par le script, qui s'affiche très bien quand j'ouvre le fichier php où se trouve ce script, je l'ai testé :

Image

Je veux qu'il y ai la variable "10" à la place de "champs 1" (par exemple).

Je ne sais pas si vous voyez ce que je veux dire...

Je souhaites mettre ce service en ligne au plus vite, alors merci d'avance à tous ceux qui auront la foi de tenter de m'aider ! :(

Merci encore. :wink:


mrPringle
WRInaute impliqué
WRInaute impliqué
 
Messages: 592
Inscription: 11 Mar 2006

Re: Variable PHP dans fichier PDF

Message le Ven Aoû 06, 2010 3:12

Déjà ton tableau
Code: Tout sélectionner
$contenuTableau = array(
   "champ 1", 1, 2,
   "champ 2", 3, 4,
   "champ 3", 5, 6,
   "champ 4", 7, 8,
   );

doit te retourner une erreur à cause de la virgule après le 8, il faut l'enlever car tu n'ajoutes aucun autre élément.

Sinon tu peux essayer quelque chose comme ça :
Code: Tout sélectionner
$proprietesTableau=array();
    if(ISSET($_POST["prix"]))
    {
          $lien1 = ($_POST["prix"]);
          echo $lien1; // Il faut entrer la variable à afficher
          Vu que tu as trois colonnes dans ton tableau, il te faut les deux autres variables ici $variable1 et $variable2
          array_push($proprietesTableau, $lien1, $variable1, $variable2); // Ajoute trois entrées au tableau $proprietesTableau
    }


erestrebian
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 474
Inscription: 15 Juin 2007

Re: Variable PHP dans fichier PDF

Message le Ven Aoû 06, 2010 7:46

Bonjour,

Dans ce que tu appelles contenu du tableau, au lieu de mettre "$champs1" passe les variables "'.$ce_que_je_veux.'" et automatise la création du tableau pour avoir un nombre infini de ligne si jamais un acheteur veut une pleine page d'articles... L'idée directrice de FPDF est de changer en pdf ce que tu es capable d'afficher en html. Si tu es capable de sortir le tableau voulu en html, tu n'es pas loin de réussir en pdf.

Monegask26
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 12
Inscription: 28 Juil 2010

Re: Variable PHP dans fichier PDF

Message le Ven Aoû 06, 2010 22:00

Bonsoir tout le monde,

tout d'abord merci pour ces réponses rapides !

mrPringle, j'ai essayé avec ce que tu m'as fourni :
Code: Tout sélectionner
<html>
<center>
<script type="text/javascript">
<!--
if (top.location.href != self.location.href)
  top.location.href = self.location.href;
//-->
</script>
<br><br>
<FORM Method="POST" Action="test.php">
MOT: <INPUT type=text value="" size=9 name="prix">
MOT: <INPUT type=text value="" size=9 name="variable1">
MOT: <INPUT type=text value="" size=9 name="variable2">
             <INPUT type=submit value="Tester">
    </FORM>

</center>
</html>


<?php
include("phpToPDF.php");

$PDF=new phpToPDF();
$PDF->AddPage();
$PDF->SetFont('Arial','B',16);

// Définition des propriétés du tableau.
$proprietesTableau=array();
    if(ISSET($_POST["prix"]))
   if(ISSET($_POST["variable1"]))
   if(ISSET($_POST["variable2"]))
    {
          $prix = ($_POST["prix"]);
        $variable1 = ($_POST["variable1"]);
        $variable2 = ($_POST["variable2"]);   

       
          echo $prix; // Il faut entrer la variable à afficher
          array_push($proprietesTableau, $prix, $variable1, $variable2); // Ajoute trois entrées au tableau $proprietesTableau
    }

// Définition des propriétés du header du tableau.   
$proprieteHeader = array(
   'T_COLOR' => array(150,10,10),
   'T_SIZE' => 12,
   'T_FONT' => 'Arial',
   'T_ALIGN' => 'C',
   'V_ALIGN' => 'T',
   'T_TYPE' => 'B',
   'LN_SIZE' => 7,
   'BG_COLOR_COL0' => array(170, 240, 230),
   'BG_COLOR' => array(170, 240, 230),
   'BRD_COLOR' => array(0,92,177),
   'BRD_SIZE' => 0.2,
   'BRD_TYPE' => '1',
   'BRD_TYPE_NEW_PAGE' => '',
   );

// Contenu du header du tableau.   
$contenuHeader = array(
   50, 50, 50,
   "Titre de la première colonne", "année N-1", "année N",
   );

// Définition des propriétés du reste du contenu du tableau.   
$proprieteContenu = array(
   'T_COLOR' => array(0,0,0),
   'T_SIZE' => 10,
   'T_FONT' => 'Arial',
   'T_ALIGN_COL0' => 'L',
   'T_ALIGN' => 'R',
   'V_ALIGN' => 'M',
   'T_TYPE' => '',
   'LN_SIZE' => 6,
   'BG_COLOR_COL0' => array(245, 245, 150),
   'BG_COLOR' => array(255,255,255),
   'BRD_COLOR' => array(0,92,177),
   'BRD_SIZE' => 0.1,
   'BRD_TYPE' => '1',
   'BRD_TYPE_NEW_PAGE' => '',
   );   

// Contenu du tableau.   
$contenuTableau = array(
   @"$prix", 1, 2,
   "champ 2", 3, 4,
   "champ 3", 5, 6,
   "champ 4", 7, 8
   );
   
   // 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);

$PDF->Output();

?>


Mais rien n'y fait, j'obtiens le message suivant :

FPDF error: Some data has already been output, can't send PDF file

J'avais lu qu'il ne fallait pas envoyer de POST avant ou après le script FPDF.

Une solution ? :roll:

@ erestrebian ==> je n'ai pas très bien compris. Afficher les variable générées dans un tableau HTML je peux me faire ça (suffit de mettre le code du tableau dans echo en y placant les variables mais comment générer ensuite un fichier PDF à partir de cette page HTML générée ? Comment transformer un page HTML (tableau) en fichier PDF en utilisant FPDF comme tu dis ? :roll:

En tout cas merci à tous les 2, c'est sympa de s'occuper de mon cas désespéré ! :(


mrPringle
WRInaute impliqué
WRInaute impliqué
 
Messages: 592
Inscription: 11 Mar 2006

Re: Variable PHP dans fichier PDF

Message le Sam Aoû 07, 2010 0:08

Essaie ça :

Code: Tout sélectionner
<?php
include("phpToPDF.php");

$PDF=new phpToPDF();
$PDF->AddPage();
$PDF->SetFont('Arial','B',16);

// Définition des propriétés du tableau.
$proprietesTableau=array();
    if(ISSET($_POST["prix"]))
   if(ISSET($_POST["variable1"]))
   if(ISSET($_POST["variable2"]))
    {
          $prix = ($_POST["prix"]);
        $variable1 = ($_POST["variable1"]);
        $variable2 = ($_POST["variable2"]);


          //echo $prix; // Il faut entrer la variable à afficher
          array_push($proprietesTableau, $prix, $variable1, $variable2); // Ajoute trois entrées au tableau $proprietesTableau
    }

// Définition des propriétés du header du tableau.
$proprieteHeader = array(
   'T_COLOR' => array(150,10,10),
   'T_SIZE' => 12,
   'T_FONT' => 'Arial',
   'T_ALIGN' => 'C',
   'V_ALIGN' => 'T',
   'T_TYPE' => 'B',
   'LN_SIZE' => 7,
   'BG_COLOR_COL0' => array(170, 240, 230),
   'BG_COLOR' => array(170, 240, 230),
   'BRD_COLOR' => array(0,92,177),
   'BRD_SIZE' => 0.2,
   'BRD_TYPE' => '1',
   'BRD_TYPE_NEW_PAGE' => '',
   );

// Contenu du header du tableau.
$contenuHeader = array(
   50, 50, 50,
   "Titre de la première colonne", "année N-1", "année N",
   );

// Définition des propriétés du reste du contenu du tableau.
$proprieteContenu = array(
   'T_COLOR' => array(0,0,0),
   'T_SIZE' => 10,
   'T_FONT' => 'Arial',
   'T_ALIGN_COL0' => 'L',
   'T_ALIGN' => 'R',
   'V_ALIGN' => 'M',
   'T_TYPE' => '',
   'LN_SIZE' => 6,
   'BG_COLOR_COL0' => array(245, 245, 150),
   'BG_COLOR' => array(255,255,255),
   'BRD_COLOR' => array(0,92,177),
   'BRD_SIZE' => 0.1,
   'BRD_TYPE' => '1',
   'BRD_TYPE_NEW_PAGE' => '',
   );

// Contenu du tableau.
$contenuTableau = array(
   $prix, 1, 2,
   $variable1, 3, 4,
   $variable2, 5, 6,
   "champ 4", 7, 8
   );

   // 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);

$PDF->Output();
exit;
?><html>
<center>
<script type="text/javascript">
<!--
if (top.location.href != self.location.href)
  top.location.href = self.location.href;
//-->
</script>
<br><br>
<FORM Method="POST" Action="test.php">
MOT: <INPUT type=text value="" size=9 name="prix">
MOT: <INPUT type=text value="" size=9 name="variable1">
MOT: <INPUT type=text value="" size=9 name="variable2">
             <INPUT type=submit value="Tester">
    </FORM>

</center>
</html>


Par contre tu devrais peut-être voir à embaucher un "vrai" développeur juste pour quelques heures afin de te faire un truc propre car avec du bricolage, tu vas te galérer sur le long en terme en ajoutant des rustines un peu partout.
Tout du moins, tu devrais faire quelques tutos PHP pour comprendre et maîtriser les bases. :)

Monegask26
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 12
Inscription: 28 Juil 2010

Re: Variable PHP dans fichier PDF

Message le Sam Aoû 07, 2010 1:09

Ca fonctionne enfin ! Pour les $proprietesTableau, "{" n'était pas refermé d'ou une erreur php.

Merci à toi, mais en fait la boutique n'est pas la mienne, moi je n'ai que 17 ans et je peux me debrouiller en php c'est juste que PFPDF j'ai un peu de mal. J'aide un proche juste à mettre en place certaines choses en php car la personne s'occupe du marketing, etc. Mais j'y penserais, merci infiniment. :)


guicara
WRInaute passionné
WRInaute passionné
 
Messages: 2472
Inscription: 2 Fév 2006

Re: Variable PHP dans fichier PDF

Message le Dim Aoû 08, 2010 13:37

Bonjour,

Pour ceux et celles qui ont un peu de mal avec FPDF, je recommande l'excellent TCPDF 5.0 qui est une bonne alternative, plus facile à mettre en place et toute aussi puissante (je m'en sert pour l'édition de mes factures / devis).


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités