Page 1 sur 1

Passage de variable

Posté : 03 avr. 2013, 13:43
par [Compte supprime]
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 ! :)

Re: Passage de variable

Posté : 03 avr. 2013, 13:55
par moogli
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.


@+

Re: Passage de variable

Posté : 03 avr. 2013, 13:56
par edison1986
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");

Re: Passage de variable

Posté : 03 avr. 2013, 19:05
par [Compte supprime]
Merci, ça fonctionne niquel !!!