Witam.
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
define('FPDF_FONTPATH','font/'); $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.
Ten post edytował jacusek 17.09.2011, 06:35:07