[RESOLU] Passage de variable

[Compte supprime]
Invité n'ayant pas de compte PHPfrance

03 avr. 2013, 13:43

Bonjour,

Je développe un petit outil de facturation et j'ai un souci où moment de passer une variable...

Le schéma est le suivant :

Formulaire -> Traitement formulaire -> Traitement pdf (avec un autre fichier en include).

Ci-joint le traitement pdf avec HTML2PDF :
ob_start();
include(dirname(__FILE__)."/modele_facture.php");
$content = ob_get_clean();
 
// convert in PDF
require_once(dirname(__FILE__).'/html2pdf/html2pdf.class.php');
try
{
$nom_file = $_GET['num_facture'];   
$html2pdf = new HTML2PDF('P', 'A4', 'fr', true, 'UTF-8', array(0, 5, 0, 5));
$html2pdf->pdf->SetDisplayMode('fullpage');
$html2pdf->writeHTML($content);
$html2pdf->Output('docs/' . $nom_file . '.pdf', 'F');
Dans ce fichier, j'arrive bien à récupérer le numéro de facture créé après le traitement du formulaire, $_GET['num_facture'];

Par contre, en haut, j'ai l'include du fichier "modele_facture.php". Dans ce fichier, j'ai une connexion avec une bdd où j'ai impérativement besoin du numéro de le facture. Je ne vois pas comment l'envoyer dans le fichier sachant que le seul lien est cet include.

Pour info, tout le reste fonctionne parfaitement ! Si je mets un numéro de facture sans variable dans le modele, le traitement du formulaire puis l'éxécution du pdf fonctionne sans souci.

Merci à vous ! :)

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

03 avr. 2013, 13:55

salut,


Le fichier inclus sera traité comme si le code était dans la page, donc toute variable déclarée avant sera accessible dans le fichier inclus.

Pour faire quelque chose de propre il serait plus intéressant que tu ai une fonction (ou une classe) dans le fichier inclus, qui va te générer le contenue et retourner une chaine de caractère.
L'avantage c'est que se sera utilisable dans d'autre page et que tu a juste a fournir le N) de facture en paramètre de la fonction (ou un "setter" sur la classe).

si non la version moisie, tu déplace la ligne $nom_file = $_GET['num_facture']; avant l'include et tu utilise $nom_file dans le fichier .
Il faudra impérativement avoir une variable $nom_file avant d'utiliser ce fichier.


@+
Il en faut peu pour être heureux ......

Eléphant du PHP | 86 Messages

03 avr. 2013, 13:56

Bonjour,

Si le fichier modele_facture.php n'est utiliser qu'ici tu peux faire un truc du genre:
if(isset($_GET['num_facture']) && $_GET['num_facture']; != "")
{
ob_start();

$nom_file = $_GET['num_facture']; 
include(dirname(__FILE__)."/modele_facture.php");

$content = ob_get_clean();
 
// convert in PDF
require_once(dirname(__FILE__).'/html2pdf/html2pdf.class.php');
try
{ 
$html2pdf = new HTML2PDF('P', 'A4', 'fr', true, 'UTF-8', array(0, 5, 0, 5));
$html2pdf->pdf->SetDisplayMode('fullpage');
$html2pdf->writeHTML($content);
$html2pdf->Output('docs/' . $nom_file . '.pdf', 'F');
}
else
   echo("Erreur: pas de numéro de facture");
et dans le fichier modele_facture.php
if(isset($nom_file) && $nom_file != "")
{
   /* TU EXECUTE TON CODE */
}
else
   echo("ERREUR (modele_facture.php): pas de nom de fichier");

[Compte supprime]
Invité n'ayant pas de compte PHPfrance

03 avr. 2013, 19:05

Merci, ça fonctionne niquel !!!