2016-07-10 79 views
0

我創建了一個PHP頁面來打印我的項目的發票。保存我的發票後,我需要自動打印此頁面。我用jQuery的$。員額方法打開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); 
}); 

擡頭!

警報從請求print.php使用done()代替success()因爲結果:jqXHR.success()jqXHR.error()jqXHR.complete()回調方法在jQuery 3.0的去除。您可以改爲使用jqXHR.done()jqXHR.fail()jqXHR.always()

+0

謝謝。我不需要得到任何結果。我只需要打印發票。 –

+0

'alert(「Success:」+ 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(); 
    } 
); 

注意:我假設,如果我在瀏覽器中打開print.php然後我會在人類可讀的方式發票,無論是原始文本或HTML無論你將打開打印看到。在瀏覽器中的PHP將被打印。