2017-11-04 8 views
0

LaravelプロジェクトでBarryVdh/DOMPDFコードを使用しようとしています。 私は、印刷ボタンでページを作っDOMPDFがAJAXを使用しているときにファイルをダウンロードしない

<a href="/print-facturen" class="btn btn-default printbtn">Print</a>

でこれはコントローラ機能を呼び出している:

public function printFacturen(Request $request) { 

     $facturen = Factuur::all(); 
     view()->share('facturen', $facturen); 

     $pdf = PDF::loadView('pdf.facturen'); 
     return $pdf->download('invoice.pdf'); 
    } 

これが成功したPDFファイルをダウンロードしています。

Route::get('/print-facturen', '[email protected]')->name('print_overzicht_facturen');

しかし、私の代わりに私のPDFを埋めるために、ラジオボタンの内容を必要とする:

私のルートがあります。 、私は成功した私のoptionIDを見ることができます

$(".printbtn").click(function(e) 
    { 
     var option = $("input[name='factuur_selectie']:checked").val(); 

     $.ajax({ 
      type: 'POST', 
      url: 'print-facturen', 
      data: {"optionID": option} 
     }) 
    }); 

そして、私のコントローラは

public function printFacturen(Request $request) { 

     $option = $request->get('optionID'); 

     $facturen = Factuur::all(); 
     $searchFacturen = new \Illuminate\Database\Eloquent\Collection(); 

     foreach ($facturen as $factuur) { 
      if ($option == 1) { 
       $searchFacturen->add($factuur); 
      } 
      else if ($option == 2) { 
       if ($factuur->voldaan == true) { 
        $searchFacturen->add($factuur); 
       } 
      } 
      else if ($option == 3) { 
       if ($factuur->voldaan == false) { 
        $searchFacturen->add($factuur); 
       } 
      } 
     } 
     view()->share('facturen', $searchFacturen); 

     $pdf = PDF::loadView('pdf.facturen'); 
     return $pdf->download('invoice.pdf'); 
    } 

に変更されます。 は、だから、私はjQueryの機能を追加し

<a href="#" class="btn btn-default printbtn">Print</a>

に私のhrefを変更しますPDFファイルはもうダウンロードされていません... :-(

私はPOSTエラーを得たとして

が、私はこのルートを追加しました:ネットワークを検査する場合

Route::post('/print-facturen', '[email protected]')->name('print_overzicht_facturen');

を、私はこれを参照してください。

を申し訳ありませんが、私はまだここに画像を投稿することができませんよ: - ( (https://user-images.githubusercontent.com/5870500/32404394-3555952c-c14f-11e7-82c3-2d000d1a2661.png

私は間違っていますか?リンクを取得するラジオクリックでリンクを修正し、動的になり、それを行うには

header('Content-Type: application/octet-stream; charset=utf-8'); 
header('Content-Disposition: attachment; filename="'.$filename.'"'); 

その他の単純なオプション:

敬具、

デイビー

答えて

0

あなたが適切なHTTPレスポンスヘッダを設定する必要がありますlike:example.org/download?radio=1

+0

このヘッダーはどこに設定しますか? リンクについては、印刷したいラジオのクリックではありません。 – Davy

+0

プラスこれらの行を追加せずに、これが他の方法でどのように機能するのかを説明できますか? – Davy

+0

あなたのPHPファイルで設定したヘッダー。 2番目の方法では、GETリクエストを再度作成しています(クリックするとjqueryアクションでurlにシリアル化されたラジオオプションを設定する必要があります) – Geding

関連する問題