sauero
sauero

Reputation: 259

Printing page from AJAX

I wrote a simple generator to create offers. It works good, but I got the problem with printing. When I try a print page from AJAX request, I getting index page not data from AJAX request.

What's wrong?

Additionally, data from AJAX is correct.

$.post({
    type: "POST",
    url: "generate.php",
    data: {pid: pid, net: net, brutto: brutto, contractor: contractor, delivery: delivery, term: term},
}).done(function(data) {
    window.print(data);
});

Example for PHP file :

<?php
$foo = "foo";
ob_start();
?>

<p><?php echo $foo; ?></p>

<?php 

$result = ob_get_flush();
echo $result;

?>

Upvotes: 4

Views: 6763

Answers (2)

mega6382
mega6382

Reputation: 9396

The print() method doesn't take any arguments. So, if you want to print data from variable, you can use this method:

$.post({
    type: "POST",
    url: "generate.php",
    data: {pid: pid, net: net, brutto: brutto, contractor: contractor, delivery: delivery, term: term},
}).done(function(data) {
    printWindow = window.open('');
    printWindow.document.write(data);
    printWindow.print();
});

this will open a new tab, with value of data on screen and ready to print.

Upvotes: 6

Quentin
Quentin

Reputation: 943207

The print() method:

Opens the Print Dialog to print the current document.

It doesn't take any arguments (so any arguments you pass it will be ignored).

If you want to print data you have in a variable, you need to put it in the document the user is viewing.

Upvotes: 3

Related Questions