1

Bonjour une nouvelle fois smile

Je viens à vous car j'ai un bug des plus étranges sur mon pdf... J'explique :
Je génère grâce à php un bon de commande, qui gère entre autre les frais de port de la commande (par rapport au poids de la commande et au pays du client). L'utilisateur peut également choisir de venir chercher sa commande directement sur place, dans ce cas il coche une checkbox et les frais de port sont à 0. Pas de problème jusque là, je coche la checkbox et le bon de commande en html affiche bien 0,00 frais de port... je génère le pdf, et là surprise les frais de port sont là à 20€ !!!

Je ne comprends pas comment cette donnée peut être différente sur la page html et sur le pdf... Une idée ???

2

peut-être car le paramètre de la checkbox n'est pas passé à la page qui génère le pdf....
Ancien pseudo : lolo

3

C'est louche, désolée je suis débutante en php j'ai un peu de mal à comprendre

J'ai une page commande.php qui affiche simplement la page en html. Elle appelle juste la fonction afficherBDC() après un include du fichier fonctions.php et c'est tout ce qu'il y a dedans.

Dans la fonction afficherBDC() je vérifie si la checkbox est coché avec un isset
if(isset($_POST['option1'])) {
$fdp = 0.00;
} else {


je créé ma mise en page et j'ai un bouton pour générer le pdf.
echo '<form action="exe-pdf.php" method="POST">';
echo '<input type="image" src="images/btn_generate1.png" value="">';
echo '</form>';



La checkbox est dans une autre fonction ( affichePanier() ) je suppose que c'est de là que vient le problème...?


Dans le fichier exe-pdf.php :

<?php
// récupération du contenu HTML
ob_start();
include(dirname(__FILE__).'/commande.php');
$content = ob_get_clean();

// conversion HTML => PDF
require_once(dirname(__FILE__).'/html2pdf/html2pdf.class.php');
require_once(dirname(__FILE__).'/pjmail/PJmail.class.php');
$html2pdf = new HTML2PDF('P','A4', 'fr');
$html2pdf->setTestTdInOnePage(false); // Ignorer les TD trop grands et aller à la ligne
$html2pdf->WriteHTML($content, isset($_GET['vuehtml']));
$html2pdf->Output('commande.pdf');
?>

4

ben vi... dans ton formulaire permetant de demander la génération du pdf, tu ne passes plus la valeur de la checkbox... comment est-ce que PHP peut savoir qu'il y a 2 pages, tu avais cocher une case ?!

chaque page PHP est complètement indépendante des autres et n'a aucune connaissance de ce qui s'est passé avant....
Ancien pseudo : lolo

5

Et comment je peux lui passer ? (désolée j'en demande beaucoup je sais sad )

6

en rajoutant ceci ...
if (isset($_POST['option1'])) echo '<input type="hidden" name="option1" value="1" >';

mais là, c'est du PHP de base... tu devrais revoir tes bases et refaire quelques tuto ! wink
Ancien pseudo : lolo

7

Ah ouai... j'avais bien rajouté le champs en hidden, mais sans le isset avant ça marchait pas trop forcément...
Merci... et encore désolé du dérangement