2011-06-23 58 views
1

我試圖用jQuery將表單的內容發送到FPDF。變量沒有顯示,但pdf也沒有給出錯誤;它只是空白。爲了簡潔起見,我只有一個變量。任何猜測?將變量從jQuery發送到FPDF

形式

<form id="contact"> 
<input type="hidden" name="front_finish_name_field" id="front_finish_name_field" value="Mirror" /> 
<input type="hidden" name="front_finish_price_field" id="front_finish_price_field" value="15" /> 
<input type="hidden" name="front_pattern_name_field" id="front_pattern_name_field" value="Tiger" /> 
<input type="hidden" name="front_pattern_price_field" id="front_pattern_price_field" value="5" /><br /> 
<input type="hidden" name="back_finish_name_field" id="back_finish_name_field" value="Mirror" /> 
<input type="hidden" name="back_finish_price_field" id="back_finish_price_field" value="15" /> 
<input type="hidden" name="back_pattern_name_field" id="back_pattern_name_field" value="Tiger" /> 
<input type="hidden" name="back_pattern_price_field" id="back_pattern_price_field" value="5" /><br /> 
<input type="hidden" name="glass_total" id="glass_total" value="40" /> 
<br /> 
<h2>Send Quote</h2><br /> 
Select agent: <select name="agents" id="agents"> 
    <option value="1">Jill Smith</option> 
    <option value="2">John Smith</option> 
    <option value="3">Jack Smith</option> 
</select> 
<input type="submit" id="submit" value="Send" /> 
</form> 

jQuery的

<script type="text/javascript" charset="utf-8"> 
    $(document).ready(function() { 
        $("#submit").click(function(){ 
      var data = $("#contact").serialize(); 
       $.ajax 
        ({ 
        type: "POST", 
        url: "generate_pdf.php", 
        data: data, 
        cache: false, 
        success: function() 
         { 
          alert("Thank you"); 
         } 
        }); 
       return false; 
     }); 
    }); 
</script> 

FPDF PHP

<?php 
require('fpdf.php'); 

$front_finish_name_field = $_POST['front_finish_name_field']; 
$pdf = new FPDF(); 
$pdf->AddPage(); 
$pdf->SetFont('Arial','B',16); 
$pdf->Cell(40,10,$front_finish_name_field); 
$pdf->Output("sample.pdf", "I"); 
?> 

編輯

看起來問題出在哪將生成的PDF返回給用戶。如果我將pdf設置爲保存在服務器上,則字段值將顯示在文檔中。

+0

你可以暫時關閉PDF生成並輸出一個'print_r($ _ POST)'而不是?這將顯示發佈請求的所有實際數據。 – hakre

+0

你的意思是它發送了什麼?如果是這樣,我已經更新了OP。 – Thomas

+0

這不是'print_r($ _ POST)'的輸出,不是嗎? – hakre

回答

0

是否生成PDF輸出爲有效PDF?如果您在PDF前導碼之前意外寫入空格,則文件可能會顯示爲空白(因爲讀者沒有看到PDF魔術字符是第一件事)。

我會非常仔細地檢查PHP文件,並確保文件中的第一個字符是<php<?,在這之前絕對沒有空格(新行,製表符,空格),並且絕對沒有輸出PDF數據後輸入空格(嘗試之後再輸入exit();)。

+0

剛剛確認,沒有空白。 – Thomas

0

它通常不是一個以PDF內容粘貼到SO這樣很不錯的主意,但它並告訴我一些重要的東西:

在該文件中唯一的字體是「黑體」,而不是「宋體」 ...哎呦。根據FPDF文檔,就他們而言,Arial只是Helvetica的同義詞。它是「Helvetica-Bold」。好的。所以你的SetFont調用不是簡單地被忽略。那是好消息。

而頁面內容流的壓縮長度足以讓我覺得SOMETHING在那裏,可能是你的文本(以你看不到的方式繪製)。

你能給我們一個PDF的鏈接嗎?有多種原因顯示有效文本不可見。

+0

當然:[這是pdf](http://modmetal.com/test/generate_pdf.php) – Thomas

+0

我得到的只是一個空白頁面。保存該「空白頁面」(在FF4中)給了我一些空身體的HTML。只要記住PDF文件是一種二進制格式,並且必須如此處理。 –

+0

看我的編輯。事實證明一切工作正常,但它不會向用戶返回任何內容。如果我將FPDF設置爲保存表單提交給服務器的內容,那麼該pdf具有正確填充的字段。 – Thomas