2013-07-15 2 views
0

У меня возник вопрос о создании PDF с DOMPDF. В принципе у меня есть форма, которая отправляет данные в БД с JQuery, которая выглядит, как показано нижеСоздание PDF с DOMPDF с помощью codeigniter при нажатии кнопки после отправки данных в базу данных

$('#submit').click(function(){ 
var submit = $.ajax({ 
    url: 'setController.php', 
    type: 'POST', 
    data: dataString, 
    success: function(msg){ 
     alert("sent"); 

     }, 
     error: function(msg){ 
    alert("fail"); 
     } 
    }); 
}); 

setController называет мой setModel, которая возвращает рендер моего HTML после того, как она занесена данные в к БД. Это выглядит так.

$html = $this -> setModel -> setData($arr1,$arr2); 

Это возвращает простую таблицу html.

Тогда я нажимаю это вниз к DOMPDF следующим

$this->load->helper(array('dompdf', 'file')); 
    pdf_create($html, 'report'); 

Мой вопрос, когда кнопка с ID #submit нажата не PDF не возвращается для загрузки. Однако, если я должен был перейти непосредственно к моему URL

«http://www.url/setData»

Я возвращается с PDF Скачать без каких-либо данных в нем.

Может ли кто-нибудь, связав pdf-файл с загрузкой после нажатия кнопки «Отправить»?

спасибо.

ответ

2

Желаемое взаимодействие для пользователя, чтобы отправить форму, затем будет представлено диалоговое окно загрузки для PDF-файла? Используя AJAX для управления процессом, вам не будет предоставлена ​​возможность загрузить PDF-файл, так как процесс AJAX выполняет вызов и получает ответ. Все это в контексте текущей страницы.

может отследить ответ, затем открыть новое окно и заполнить его своим PDF-файлом. Но я бы посоветовал это, если у вас нет настоящей потребности. Не делайте процесс сложнее, чем нужно. Самый простой способ - сделать обычный запрос POST вместо запроса AJAX POST. Обычно пользователь не покидает текущую страницу, потому что процесс загрузки отменяет навигацию по страницам.

Если вы намерены использовать это с помощью AJAX, есть lots of related questions.

+0

Вы абсолютно правы! Удивительно, как мы всегда стараемся решить что-то сложное, когда ответ может быть таким простым! Спасибо. Вместо этого я буду делать обычный POST. – BaconJuice

Смежные вопросы