การสร้างลิงค์สำหรับการพิมพ์

ปกติแล้วการสั่งพิมพ์หน้าเพจด้วย Javascript สามารถทำได้โดยใช้คำสั่ง Javascript window.print() ในหน้าที่ต้องการพิมพ์ แต่หากต้องการพิมพ์หน้าอื่นจากหน้านี้ล่ะ?

ยกตัวอย่างง่ายๆ เช่น การพิมพ์ใบเสร็จรับเงิน หรือการสร้างลิงค์เพื่อสั่งพิมพ์หน้า 1, หน้า 2 หรือ หน้า 3

มีไฟล์ที่เกี่ยวข้องอยู่ 3 ไฟล์ครับ ไฟล์แรกเป็นไฟล์ที่เรียกดู หรือเป็นไฟล์ที่มีลิงค์สำหรับสั่งพิมพ์
<a href="print.php?file=test1" target="_blank">print 1</a>
<a href="print.php?file=test2" target="_blank">print 2</a>
<a href="print.php?file=test3" target="_blank">print 3</a>

ไฟล์ที่สอง หน้า print.php หน้านี้จะเป็นหน้าโครงสร้าง HTML ที่มีคำสั่งสำหรับพิมพ์
<html>
<body onload="window.print()">
<?php
     echo file_get_contents($_GET['file'].'.php');
?>
</body>
</html>

ตัวแปร file จากหน้าแรกที่ส่งมายัง print.php คือการระบุไฟล์ที่ต้องการพิมพ์ ซึ่งเมื่อมีการเรียกมายัง print.php ฟังก์ชั่น file_get_contents() จะทำหน้าที่โหลดเนื้อหาตามที่กำหนดโดยตัวแปร $_GET['file'] มาใส่ลงในหน้า print.php ซึ่งเมื่อโหลดเสร็จแล้วก็จะสั่งพิมพ์ด้วยคำสั่ง body onload="window.print()"

ไฟล์ที่สาม ที่หน้าส่วนที่เป็นเนื้อหาตามที่เรียก เช่น test1.php ก็เป็นการแสดงผลเนื้อหาตามปกติเหมือนหน้าเว็บทั่วไป รวมถึงสามารถ query ข้อมูลที่มาจากฐานข้อมูลก็ได้ด้วย
ผู้เขียน goragod โพสต์เมื่อ 21 พ.ค. 2552 เปิดดู 21,930 ป้ายกำกับ PrintJavascript
^