2011-06-23 9 views
1

jQueryを使用してフォームのコンテンツをFPDFに送信しようとしています。変数は表示されませんが、pdfもエラーを表示しません。それはちょうど空白です。私はこれまで簡単にするために1つの変数しか持っていません。どんな推測?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"); 
?> 

EDIT

それは問題の嘘のように見えます生成された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

これは、一般的にそのようにSOにPDFの内容を貼り付けるために非常に良いアイデアはないが、それは私に何か重要な表示されました:

そのファイル内の唯一のフォントが「ヘルベチカ」で、「ゴシック」ではないが...うわー。 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

関連する問題