2010-03-23 158 views
2

我不想从页面上的表单创建PDF,但问题是,我需要它像表单,所有条目页面。将页面保存为PDF或HTML格式但所有条目

所以我必须例如

2输入字段,7收音机,2个复选框,并作为结果,我需要用相同的sructure一个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,但为了保持条目它。之后尝试转换它。但问题是,要保存所有数据。

ADDED:如何添加一个attr选择到选项字段?

+0

你能概述*为什么*你需要这种方式?这个问题解决了什么问题? – Tomalak 2010-03-23 19:59:02

+0

我需要保存此表单,供我的用户使用,并通过电子邮件自动发送。表格非常大,我们有大约7种不同的形式,脚本必须能够处理所有这些。 – 2010-03-23 21:28:53

回答

0

在浏览器的javascript命令行中运行此操作,将结果复制粘贴到文本编辑器并另存为html文件。

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

根据您的浏览器,这也可以工作的时候复制粘贴到地址栏:

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

输出为“动态”网页的源文件,即DOM渲染成文本树。

+0

问题是, 如果我已经写了一些在该领域的思考,它不会通过使用.html()或.text()...保存相同的复选框:( – 2010-03-23 21:11:40

+0

你是对的,我的建议 – jholster 2010-03-24 08:34:55

0

你用什么将HTML转换为PDF?我可以推荐TCPDF:http://www.tecnick.com/public/code/cp_dpage.php?aiocp_dp=tcpdf

它可以将HTML与CSS转换为PDF格式。我没有自己测试过,但我确信它会保持选中状态。但是肯定的是,你必须使用PHP创建HTML以使复选框被选中。

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

您应该能够使用TCPDF类创建正确的PDF表单。

+0

嗯,这个类是非常有用的,但首先,我需要保存html页面ast,txt或thml这个所有的输入,然后将其转换为 我使用这个jquery代码,但是我得到的是没有条目的表单 – 2010-03-23 21:23:41

+0

但是,如果您将表单发送给自己,并且将$ _REQUEST数组中的所有值添加到input和textare的值属性中并选择/检查所有其他元素,则会获得正确的表单状态在HTML源代码或者只是尝试我的新建议 – 2ndkauboy 2010-03-23 21:36:45

+0

hm,我现在就试试吧 – 2010-03-24 07:10:14

0

好吧,我认为问题在于,检查浏览器中的复选框不会更改HTML源代码。因此,如果您想通过AJAX传输HTML,则必须将浏览器中的已检查状态“转换”为真正的源检查状态。

我不是jQuery专家,但是您可以选择所有输入[type =“checkbox”]并测试它们是否被选中。如果是,请将“checked”的属性添加到复选框“checked”中。否则删除检查的属性,如果它存在。

源HTML将具有所有正确的选中状态。如果没有这种方法,你可能会得到一些已经预先选择了PHP的复选框,但已被用户取消选择。

我希望我的回答是很清晰,很抱歉,我的英语:)

+0

是的,它的问题,我会尽力做到这一点 – 2010-03-24 07:09:56

+0

$(this).attr(“value”,$(this).val());不起作用 – 2010-03-24 08:20:04

+0

正如我已经提到的,我的jQeury知识仅限于基础知识。我可以给你一个Prototype的解决方案。 但这就是你必须做的: 选择所有输入,textarea和选择元素。对于不是复选框或单选按钮的所有输入,请设置值属性。对于复选框和单选按钮,选择检查“已选中”或“已选”状态并向其中添加选中或选定的属性。对于textareas,将该值作为文本子节点添加到textarea。 但如何解决这个问题,你可能需要问一个jQuery专家。 – 2ndkauboy 2010-03-24 12:26:58

0

您是否尝试过将网页作为与变量条件覆盖背景?我在过去使用FPDF实现了这一点。单选按钮可以放置在现有屏幕转储的顶部。将文本放在正确的位置也没有问题。

0

是否有任何理由不能将表单数据发送到将表单数据存储在数据库中的服务器进程?从那里,它应该是一个相对简单的过程来填充HTML表单并从数据库生成PDF表单。

+0

对不起,没办法:( – 2010-03-24 07:11:57