7

With following code it's showing the print dialog box and print the page successfully but how do i print a different page after click on this same button ? Different page name is : letterprint.php

<div class="below_movie_left" id="printableArea">
My printing contents
</div>

<input type="button"  class="submit_button" onclick="printDiv('printableArea')" value="Print" style="float:right;" />

<script>
function printDiv(divName) {
     var printContents = document.getElementById(divName).innerHTML;
     var originalContents = document.body.innerHTML;

     document.body.innerHTML = printContents;

     window.print();

     document.body.innerHTML = originalContents;
}
</script>

Is this possible with javascript / jQuery / Ajax method ? how ?

marc_s
  • 732,580
  • 175
  • 1,330
  • 1,459
Babu
  • 455
  • 2
  • 14
  • 33

2 Answers2

18

If you already have the page you want to print, put that page in an hidden iframe and print the content of iframe

<iframe src="letterprint.php" name="frame"></iframe>

<input type="button" onclick="frames['frame'].print()" value="printletter">
coder hacker
  • 4,819
  • 1
  • 25
  • 50
1

You can't really print another page; browsers just don't give Javascript that power. However, what you can do is change the content of the page the user is on.

In short, you can use AJAX or an iframe to access the second page (letterprint.php), and then replace the contents of an element on your page with that page's contents. If you don't want it visible to the user, you can use a targeted stylesheet to make the new content only visible when printing.

machineghost
  • 33,529
  • 30
  • 159
  • 234