Нужно сделать ajax-запрос из формы и создать pdf-документ. Делаю ajax запрос функции, где вызывается FPDF. Функция выглядит примерно так Код (Text): if(!function_exists('ajax_add_pdf_file')) { function ajax_add_pdf_file(){ $firstname = $_POST['firstname']; $lastname = $_POST['lastname']; $email = $_POST['email']; $pdf = new FPDF(); $pdf -> AddPage(); $pdf -> SetFont('Arial', 'B', 18); $pdf -> Cell(40,10,'Hello '.$firstname.' '.$lastname); $pdf -> Cell(40,10,'Email: '.$email); $savefolder = realpath('../../../applications'); $filename = $firstname.'12.pdf'; $savefile = $savefolder.'/'.$filename; $pdf->Output(F, $savefile); } } Когда без функции просто вызвать файл - то все ок. документы формируются Помогите. Как вызвать fpdf в функции? *c ajax-запросом, вроде, все ок. так же вызывается и другая функция
она по-другому называется. Я уже и этот код в ту функцию вписывал - не помогает. FPDF вообще может вызываться с функции?
object(FPDF)#1 (58) { ["page"rotected]=> int(0) ["n"rotected]=> int(2) ["offsets"rotected]=> NULL ["buffer"rotected]=> string(0) "" ["pages"rotected]=> array(0) { } ["state"rotected]=> int(0) ["compress"rotected]=> bool(true) ["k"rotected]=> float(2.8346456692913) ["DefOrientation"rotected]=> string(1) "P" ["CurOrientation"rotected]=> string(1) "P" ["StdPageSizes"rotected]=> array(5) { ["a3"]=> array(2) { [0]=> float(841.89) [1]=> float(1190.55) } ["a4"]=> array(2) { [0]=> float(595.28) [1]=> float(841.89) } ["a5"]=> array(2) { [0]=> float(420.94) [1]=> float(595.28) } ["letter"]=> array(2) { [0]=> int(612) [1]=> int(792) } ["legal"]=> array(2) { [0]=> int(612) [1]=> int(1008) } } ["DefPageSize"rotected]=> array(2) { [0]=> float(210.00155555556) [1]=> float(297.00008333333) } ["CurPageSize"rotected]=> array(2) { [0]=> float(210.00155555556) [1]=> float(297.00008333333) } ["CurRotation"rotected]=> int(0) ["PageInfo"rotected]=> array(0) { } ["wPt"rotected]=> float(595.28) ["hPt"rotected]=> float(841.89) ["w"rotected]=> float(210.00155555556) ["h"rotected]=> float(297.00008333333) ["lMargin"rotected]=> float(10.00125) ["tMargin"rotected]=> float(10.00125) ["rMargin"rotected]=> float(10.00125) ["bMargin"rotected]=> float(20.0025) ["cMargin"rotected]=> float(1.000125) ["x"rotected]=> NULL ["y"rotected]=> NULL ["lasth"rotected]=> int(0) ["LineWidth"rotected]=> float(0.200025) ["fontpath"rotected]=> string(66) "/home/neo/public_html/wp-content/themes/NEO-1/functions/fpdf/font/" ["CoreFonts"rotected]=> array(5) { [0]=> string(7) "courier" [1]=> string(9) "helvetica" [2]=> string(5) "times" [3]=> string(6) "symbol" [4]=> string(12) "zapfdingbats" } ["fonts"rotected]=> array(0) { } ["FontFiles"rotected]=> array(0) { } ["encodings"rotected]=> array(0) { } ["cmaps"rotected]=> array(0) { } ["FontFamily"rotected]=> string(0) "" ["FontStyle"rotected]=> string(0) "" ["underline"rotected]=> bool(false) ["CurrentFont"rotected]=> NULL ["FontSizePt"rotected]=> int(12) ["FontSize"rotected]=> NULL ["DrawColor"rotected]=> string(3) "0 G" ["FillColor"rotected]=> string(3) "0 g" ["TextColor"rotected]=> string(3) "0 g" ["ColorFlag"rotected]=> bool(false) ["WithAlpha"rotected]=> bool(false) ["ws"rotected]=> int(0) ["images"rotected]=> array(0) { } ["PageLinks"rotected]=> NULL ["links"rotected]=> array(0) { } ["AutoPageBreak"rotected]=> bool(true) ["PageBreakTrigger"rotected]=> float(276.99758333333) ["InHeader"rotected]=> bool(false) ["InFooter"rotected]=> bool(false) ["AliasNbPages"rotected]=> NULL ["ZoomMode"rotected]=> string(7) "default" ["LayoutMode"rotected]=> string(7) "default" ["metadata"rotected]=> NULL ["PDFVersion"rotected]=> string(3) "1.3" } @|@ --- Добавлено --- --- Добавлено --- Я делаю это на WP. Заметил, если функция просто написана и выведена - то все ок. Если добавлены строки: Код (Text): add_action('wp_ajax_nopriv_wpestate_ajax_add_pdf_file', 'wpestate_ajax_add_pdf_file'); add_action('wp_ajax_wpestate_ajax_add_pdf_file', 'wpestate_ajax_add_pdf_file'); То уже не работает. В самим запросом проблем быть не должно. Он выглядит так: Код (Text): $("#ajax_for_pdf").click(function(){ add_pdf_file(); return false; }); function add_pdf_file() { var ajaxurl = '/wp-admin/admin-ajax.php'; $.ajax({ type: 'POST', url: ajaxurl, dataType: 'json', data: { 'action' : 'wpestate_ajax_add_pdf_file', }, success: function (data) { if (data.error == false) { resultFormMsg("remove", "ЗаÑвка уÑпешно отправлена."); } else { resultFormMsg("show", "Заполните вÑе данные."); } }, error: function (errorThrown) { } }); }
1. Когда пишите код включайте отображение всех ошибок PHP: ini_set('display_errors', 1); error_reporting(E_ALL); вставляем сразу после <?php 2. function Output($dest='', $name='', $isUTF8=false) здесь $dest строковая переменная или ничего. Вы же передали не объявленную константу F PHP: $pdf->Output('F', $savefile);