การสร้างลิงค์สำหรับการพิมพ์
ปกติแล้วการสั่งพิมพ์หน้าเพจด้วย Javascript สามารถทำได้โดยใช้คำสั่ง Javascript window.print() ในหน้าที่ต้องการพิมพ์ แต่หากต้องการพิมพ์หน้าอื่นจากหน้านี้ล่ะ?
ยกตัวอย่างง่ายๆ เช่น การพิมพ์ใบเสร็จรับเงิน หรือการสร้างลิงค์เพื่อสั่งพิมพ์หน้า 1, หน้า 2 หรือ หน้า 3
มีไฟล์ที่เกี่ยวข้องอยู่ 3 ไฟล์ครับ ไฟล์แรกเป็นไฟล์ที่เรียกดู หรือเป็นไฟล์ที่มีลิงค์สำหรับสั่งพิมพ์
ไฟล์ที่สอง หน้า print.php หน้านี้จะเป็นหน้าโครงสร้าง HTML ที่มีคำสั่งสำหรับพิมพ์
ตัวแปร file จากหน้าแรกที่ส่งมายัง print.php คือการระบุไฟล์ที่ต้องการพิมพ์ ซึ่งเมื่อมีการเรียกมายัง print.php ฟังก์ชั่น file_get_contents() จะทำหน้าที่โหลดเนื้อหาตามที่กำหนดโดยตัวแปร $_GET['file'] มาใส่ลงในหน้า print.php ซึ่งเมื่อโหลดเสร็จแล้วก็จะสั่งพิมพ์ด้วยคำสั่ง body onload="window.print()"
ไฟล์ที่สาม ที่หน้าส่วนที่เป็นเนื้อหาตามที่เรียก เช่น test1.php ก็เป็นการแสดงผลเนื้อหาตามปกติเหมือนหน้าเว็บทั่วไป รวมถึงสามารถ query ข้อมูลที่มาจากฐานข้อมูลก็ได้ด้วย
ยกตัวอย่างง่ายๆ เช่น การพิมพ์ใบเสร็จรับเงิน หรือการสร้างลิงค์เพื่อสั่งพิมพ์หน้า 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 ข้อมูลที่มาจากฐานข้อมูลก็ได้ด้วย