Variable PHP dans fichier PDF

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par Monegask26, 6 Août 2010.

  1. Monegask26
    Monegask26 Nouveau WRInaute
    Inscrit:
    28 Juillet 2010
    Messages:
    12
    J'aime reçus:
    0
    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 :

    [​IMG]

    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:
    <?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:
    <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é :

    [​IMG]

    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:
     
  2. mrPringle
    mrPringle WRInaute occasionnel
    Inscrit:
    11 Mars 2006
    Messages:
    473
    J'aime reçus:
    0
    Déjà ton tableau
    Code:
    $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:
    $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
        }
     
  3. erestrebian
    erestrebian WRInaute occasionnel
    Inscrit:
    15 Juin 2007
    Messages:
    415
    J'aime reçus:
    0
    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.
     
  4. Monegask26
    Monegask26 Nouveau WRInaute
    Inscrit:
    28 Juillet 2010
    Messages:
    12
    J'aime reçus:
    0
    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:
    <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é ! :(
     
  5. mrPringle
    mrPringle WRInaute occasionnel
    Inscrit:
    11 Mars 2006
    Messages:
    473
    J'aime reçus:
    0
    Essaie ça :

    Code:
    <?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. :)
     
  6. Monegask26
    Monegask26 Nouveau WRInaute
    Inscrit:
    28 Juillet 2010
    Messages:
    12
    J'aime reçus:
    0
    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. :)
     
  7. guicara
    guicara WRInaute passionné
    Inscrit:
    2 Février 2006
    Messages:
    1 583
    J'aime reçus:
    0
    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).
     
Chargement...
Similar Threads - Variable PHP fichier Forum Date
Stocker dans des variables php les fonctions MySql Développement d'un site Web ou d'une appli mobile 2 Février 2019
Passer une variable JS vers PHP Développement d'un site Web ou d'une appli mobile 25 Septembre 2018
Protection variable php contre les injections ? Développement d'un site Web ou d'une appli mobile 5 Avril 2016
Var js vers une variable php Développement d'un site Web ou d'une appli mobile 30 Décembre 2014
Variable php en BDD Développement d'un site Web ou d'une appli mobile 29 Avril 2014
Faire fonctionner une variable phpbb en php Développement d'un site Web ou d'une appli mobile 27 Mars 2014
Redirection htaccess d'une anciene url php avec variable vers le domaine de base URL Rewriting et .htaccess 19 Février 2014
Utilisation variable php dans du htaccess URL Rewriting et .htaccess 14 Juin 2013
Variable phpsessid s'ajoute automatiquement aux liens ! Développement d'un site Web ou d'une appli mobile 14 Mai 2013
Url rewriting avec une variable PHP URL Rewriting et .htaccess 9 Janvier 2013
  1. Ce site utilise des cookies. En continuant à utiliser ce site, vous acceptez l'utilisation des cookies.
    Rejeter la notice