2010-03-23 76 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