2016-07-10 7 views
0

プロジェクトの請求書を印刷するPHPページを作成しました。私は請求書を保存した後、このページを自動的に印刷する必要があります。私はjqueryの$ .post print.phpページを開くには、方法、ボタンをクリックするとページが印刷されない

保存請求書のボタン

$.post("print.php",{ 
    desc: $desc, 
    }, function(data,success){ 
    alert(success); 
}); 

を使用し、私はprint.phpページではJavaScript window.onload = function(){window.print();}を使用しました。しかし、それは動作していない、何も印刷されません。それから、ブラウザのprint.phpページを開き、必要に応じて印刷しました。私はprint.phpページにリダイレクトする必要はありません。 私のコードに間違いはありますか?このページを印刷するには?

編集私が保存したり、この$.postから生じる取得する必要はありません

。私はちょうどdescデータで請求書を印刷する必要があります。

答えて

0

問題:ページが読み込まれていないため、window.onloadが機能しません。これはajaxで投稿したためです。 解決方法:フォームを使用して請求書の詳細を転記してみてください。

+0

ありがとうございました。私はデータを投稿する必要はありません。私はすでにajaxを使ってデータを保存しました。私は請求書を印刷する必要があります。 'desc'は請求書の説明です。私は説明書 –

0

post()の後にdone()を連鎖してみてください。

$.post("print.php", { desc: invoiceData }) 
    .done(function(data) { 
     alert("Success: " + data); 
}); 

ヘッドアップ!

アラートためdone()代わりにsuccess()を用いprint.phpを要求からの結果:jqXHR.success()jqXHR.error()、及びjqXHR.complete()コールバックメソッドは、jQueryの3.0のように除去されます。代わりにjqXHR.done(),jqXHR.fail()jqXHR.always()を使用できます。

+0

ありがとうと請求書を印刷する必要があります。私は結果を得る必要はありません。私は請求書を印刷するだけです。 –

+0

'alert(" Success: "+ data);の' data'は、ajax 'done()'の 'print.php'からのクライアントに対する応答です。 – joshuamabina

0

ajaxの応答を印刷したい場合は、以下のコードを使用してください。

$.post("print.php",{ 
     desc: $desc, 
    }, function(data,success){ 
     alert(success); 
     w=window.open(null, 'Print_Page', 'scrollbars=yes'); 
     w.document.write(data); //where data = response of print.php, the invoice 
     w.document.close(); 
     w.print(); 
    } 
); 

:私はあなたが印刷を開いて表示されます何でもどちらか生のテキストやHTML、私はブラウザでprint.php開くと、私は人間が読めるようにした請求書を取得することを想定しています。ブラウザでphpをそのまま印刷します。

関連する問題