Jakoś zaciąłem się na przekazywaniu zmiennych między funkcjami.
Mam napisaną taką funkcję (tzn. na razie jej początek)
<?php require('fpdf.php'); class PDF extends FPDF { public $a; public function wydruk($a){ //1st row $y=$mar; $this->SetXY(11,$y); $this->multicell(52,4,$dane_os[$a],0, 'L',0); $this->SetXY($x+11,$y); $this->multicell(52,4,$dane_os[$a],0, 'L',0); $this->SetXY(($x*2)+11,$y); $this->multicell(52,4,$dane_os[$a],0, 'L',0); $this->SetXY(($x*3)+11,$y); $this->multicell(52,4,$dane_os[$a],0, 'L',0); $this->SetXY(($x*4)+11,$y); $this->multicell(52,4,$dane_os[$a],0, 'L',0); } }
Gdzie zmienna $dane_os pochodzi z innego pliku
//zadeklarowana zmianna w formie tabeli $dane_os include('funk_pdf.php');//powyższy plik - będzie znacznie dłuższy dlatego chce to załatwić include $pdf=new PDF(); $pdf->Open(); $pdf->AddPage(); //dodaje nowa strone do dokumentu $pdf->AddFont('arialpl','','arialpl.php'); $pdf->SetTextColor(21,0,0); $pdf->SetFont('arialpl','',8); //ustawia szerokość naklejki $x=38; //ustawia wysokosc naklejki $nak_y=21.2; //ustawia górny margines w mm $mar=11.5; //echo $dane_os[1]; //1ST ROW $pdf->wydruk(1); $pdf->SetCompression(true); $pdf->SetDisplayMode(100); $pdf->SetMargins(0,0,0); $pdf->Output();
Niestety wygląda na to, że kod znajdujący się w pliku funk_pdf.php w ogóle nie widzi zmiennej $dane_os. Jeżeli wkleję to ręcznie to jest ok - tzn w następujący sposób
$y=$mar;$pdf->SetXY(11,$y); $pdf->multicell(52,4,$dane_os[1],0, 'L',0); $pdf->SetXY($x+11,$y); $pdf->multicell(52,4,$dane_os[1],0, 'L',0); $pdf->SetXY(($x*2)+11,$y); $pdf->multicell(52,4,$dane_os[1],0, 'L',0); $pdf->SetXY(($x*3)+11,$y); $pdf->multicell(52,4,$dane_os[1],0, 'L',0); $pdf->SetXY(($x*4)+11,$y); $pdf->multicell(52,4,$dane_os[1],0, 'L',0);
wówczas dokument się generuje.
Rozwiązałem, trzeba było dodać w funkcji global przy nazwach zmiennych.