Сохранение страницы в формате PDF или HTML, но со всеми записями - PullRequest
2 голосов
/ 23 марта 2010

Я хочу создать pdf из формы на моей странице, но проблема в том, что она мне нужна точно так же, как страница с формой, все заканчивается.

Так у меня например

2 поля ввода, 7 радио, 2 флажка, и в результате мне нужен PDF с такой же структурой, но если кто-то установит флажок, он должен быть сохранен в формате PDF.

Я пытался сохранить html-содержимое страницы при отправке и сначала сохранить его в html-файле, но проблема в том, что мои выборы не будут сохранены.

Результат должен быть таким же, как и при печати моей формы.

Я надеюсь, что кто-то может помочь.

Код, который я использую для сохранения содержимого страницы.

> $(document).ready(function(){
>       $('input[type=submit]').click( function()   {           
> var formname = $("body").find("form").attr("name");
> var htmldata = $("form[name="+formname+"]").html();
> var enchtmldata = ncodeURIComponent(htmldata);
> $.ajax({  
> type: "post",             
> data: "data="+enchtmldata,
> url: "makepdf.php",           
> success: function()
>   {
>   alert("success");           },
> error: function()             {
>   alert("error");             }           });
> 
> }); });

PS: я использую PHP и jQuery

ДОБАВЛЕНО: Я думаю, что лучше сначала попытаться сохранить страницу формы в формате HTML, но сохранить записи в ней. После этого, чтобы попытаться преобразовать его. Но проблема в том, чтобы сохранить его со всеми данными.

ДОБАВЛЕНО: как добавить выбранный атрибут в поле параметра?

Ответы [ 5 ]

0 голосов
/ 24 марта 2010

Есть ли какая-то причина, по которой вы не можете просто взять данные формы и отправить их на сервер, который сохранит данные формы в базе данных? Оттуда должен быть относительно простой процесс заполнения формы HTML и создания формы PDF из базы данных.

0 голосов
/ 24 марта 2010

Вы пытались поместить страницу в качестве фона с переменными в качестве условных наложений? Я добился этого в прошлом, используя FPDF. Радиокнопки могут быть размещены в виде изображения поверх существующего дампа экрана. У вас также не возникнет проблем с размещением текста в нужном месте.

0 голосов
/ 24 марта 2010

Что вы используете для преобразования HTML в PDF? Я могу рекомендовать TCPDF для этой работы: http://www.tecnick.com/public/code/cp_dpage.php?aiocp_dp=tcpdf

Может конвертировать HTML с CSS в форму PDF. Я не проверял это сам, но я вполне уверен, что он даже сохранит выбранный вариант. Но наверняка вам нужно создать HTML с PHP, чтобы установить флажок.

<input type="checkbox"<?php echo ($_REQUEST['checkbox_name'])? ' checked="checked"' : '' ?> />

После этого вы сможете создать правильную форму PDF с классом TCPDF.

0 голосов
/ 24 марта 2010

Хорошо, я думаю, проблема в том, что установка флажка в браузере не меняет источник HTML. Поэтому, если вы хотите перенести HTML-код через AJAX, вам необходимо «преобразовать» проверенное состояние в браузере в проверенное состояние реального источника.

Я не эксперт по jQuery, но вы должны выбрать все входные данные [type = "checkbox"] и проверить, проверены ли они. Если они есть, добавьте атрибут «флажок» со значением «флажок» к флажку. В противном случае удалите проверенный атрибут, если он присутствует.

Исходный HTML-код будет иметь все правильные проверенные состояния. Без этого метода вы можете получить некоторые флажки, которые были предварительно выбраны с помощью PHP, но были отменены пользователем.

Надеюсь, мой ответ был достаточно ясен, извините за мой английский :) 1007 *

0 голосов
/ 23 марта 2010

Запустите это в командной строке javascript вашего браузера, скопируйте результат в текстовый редактор и сохраните как HTML-файл.

$('body').text($('html').html())

В зависимости от вашего браузера это может также работать при копировании в адресную строку:

javascript:$('body').text($('html').html())

Выходными данными является «динамический» источник страницы, то есть дерево DOM, отображаемое в текст.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...