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.'"');
その他の単純なオプション:
敬具、
デイビー
このヘッダーはどこに設定しますか? リンクについては、印刷したいラジオのクリックではありません。 – Davy
プラスこれらの行を追加せずに、これが他の方法でどのように機能するのかを説明できますか? – Davy
あなたのPHPファイルで設定したヘッダー。 2番目の方法では、GETリクエストを再度作成しています(クリックするとjqueryアクションでurlにシリアル化されたラジオオプションを設定する必要があります) – Geding