Показать сообщение отдельно
  #1 (permalink)  
Старый 09.01.2015, 19:27
Аватар для NewJSUser
Новичок на форуме
Отправить личное сообщение для NewJSUser Посмотреть профиль Найти все сообщения от NewJSUser
 
Регистрация: 09.01.2015
Сообщений: 6

AJAX, Только передача данных.
Здравствуйте! Извиняюсь если не по адресу задаю вопрос или похожая тема уже была. Нужна помощь квалифицированных программистов. Начал писать модуль для сайта (калькулятор услуг). Смысл его в том, что этот калькулятор с помощью PHP делает выборку из БД. Потом пользователь при помощи JavaScript собирает необходимый набор данных и получает HTML таблицу. (все на этой же странице). Затем при помощи ajax надо передать данные php-скрипту, который собирает и отдает пользователю на скачку PDF файл (организовано при помощи FPDF), а вместо файла получаю только набор символов. Хотя php код работает правильно и если обратиться к нему напрямую http://Имя_сайта/exptopdf.php то можно получить файл. Как сделать так, что бы ajax только отдавал данные, а php отдал браузеру файл на скачку?.

вот так выглядит ajax (самый простой, какой только смог найти):
function set_cat(pid, cid) //входящие параметры
{
 var ld = document.getElementById('loading');
 ld.style.display = "block";
 
 $.ajax({
   type: "POST", 
   url: "exptopdf/exptopdf.php", 
   data: "id="+pid+"&cat="+cid, 
   success: function(msg){ 
	   $("#area").html(msg);
   }
 });
}


Это php скрипт, который генерирует PDF файл. Еще не дописал, но что-то он уже делает.

<?php
	$id = $_POST["id"];
	$cat = $_POST["cat"];	
	
	try
	{

		require('../FPDF/fpdf.php');
		$pdf=new FPDF();
		$pdf->AddPage();
		$pdf->AddFont('Calibri','','calibri.php');
		$pdf->SetFont('calibri','',16);
		$pdf->Image('Header.png',10,10,-138);
		
		$pdf->Ln(50);
		$pdf->Cell(210,10,'Коммерческое предложение',0,2,'C');
		$pdf->Ln(20);
		
		$pdf->SetFillColor(233,233,233);
		$pdf->SetDrawColor(118,118,118);
		$pdf->SetLineWidth(.025);
		$pdf->SetFont('calibri','',11);
		
		$pdf->Cell(8,6,"№",1,0,'C',true);
		$pdf->Cell(62,6,"Наименование",1,0,'C',true);
		$pdf->Cell(25,6,"Количество",1,0,'C',true);
		$pdf->Cell(28,6,"Цена",1,0,'C',true);
		$pdf->Cell(28,6,"Сумма",1,0,'C',true);
		$pdf->Cell(38,6,"Примечание",1,0,'C',true);
		$pdf->Ln();
		
		$pdf->Cell(189,6,"Благоустройство",1,0,'C',true);
		$pdf->Ln();
		
		$pdf->Cell(8,6,"№",1,0,'C',true);
		$pdf->Cell(62,6,$id,1,0,'C',true);
		$pdf->Cell(25,6,$cat,1,0,'C',true);
		$pdf->Cell(28,6,"Цена",1,0,'C',true);
		$pdf->Cell(28,6,"Сумма",1,0,'C',true);
		$pdf->Cell(38,6,"Примечание",1,0,'C',true);
		$pdf->Ln();
		
		$pdf->SetCreator('Automatically created document');
		$pdf->SetTitle('Offer');
		$pdf->SetKeywords('Коммерческое предложение, предложение, offer, comercial offer');
		
		$pdf->Output('Offer.pdf','D');
	}
	catch(Exception $ex)
	{
		echo $ex;
	}
?>


Единственное, что удалось получить:
Ответить с цитированием