2016-07-10 10 views
0

Ich habe eine PHP-Seite erstellt, um die Rechnung meines Projekts zu drucken. Ich muss diese Seite automatisch ausdrucken, nachdem ich meine Rechnung gespeichert habe. Ich benutzte .post Methode jquery $ print.php Seite zu öffnen,Drucken Seite funktioniert nicht, wenn Button klicken

speichern Rechnung Button

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

und i verwendet Javascript window.onload = function(){window.print();} in print.php Seite. aber es funktioniert nicht, nichts druckt. Dann öffne ich print.php Seite im Browser und es wurde gedruckt, wie ich will.Ich muss nicht auf print.php Seite umleiten. Ist in meinem Code etwas falsch? Wie drucke ich diese Seite?

bearbeiten

Ich muss aus dieser $.post nicht speichern oder führen zu bekommen. Ich muss nur die Rechnung mit desc Daten drucken.

Antwort

0

Problem: Die Seite lädt nicht, so dass window.onload nicht funktioniert. Dies liegt daran, dass Sie mit Ajax gepostet haben. Lösung: Versuchen Sie, die Rechnungsdetails mithilfe eines Formulars zu buchen.

+0

Danke. Ich muss keine Daten posten. Ich habe bereits Daten mit Ajax gespeichert. Ich muss eine Rechnung drucken. 'desc' ist eine Beschreibung der Rechnung. Ich muss Rechnung mit Beschreibung drucken –

0

Versuchen Sie, eine done() nach der zu verketten.

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

Kopf hoch!

Benachrichtigungs Die Ergebnisse anfordernden print.phpdone() anstelle von success() weil: Die jqXHR.success(), jqXHR.error() und jqXHR.complete() Callback-Methoden wie von jQuery 3.0 entfernt werden. Sie können stattdessen jqXHR.done(), jqXHR.fail() und jqXHR.always() verwenden.

+0

Danke. Ich brauche kein Ergebnis. Ich muss nur die Rechnung drucken. –

+0

Die 'Daten' in 'alert (" Erfolg: "+ Daten);' ist Antwort für den Client von der 'print.php' nach ajax' done() '. – joshuamabina

0

Wenn Sie nur die Antwort von Ajax drucken möchten, verwenden Sie den folgenden Code.

$.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(); 
    } 
); 

HINWEIS: Ich gehe davon aus, dass, wenn ich in Browser öffnen print.php dann werde ich die Rechnung in einer für Menschen lesbaren Art und Weise erhalten, entweder einen Rohtext oder html, was Sie durch das Öffnen Druck sehen. PHP im Browser, der so gedruckt wird wie er ist.

Verwandte Themen