A-AA+then

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

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

มีไฟล์ที่เกี่ยวข้องอยู่ 3 ไฟล์ครับ ไฟล์แรกเป็นไฟล์ที่เรียกดู

<a href="print.php?file=test1.php" target="_blank">print 1</a>
<a href="print.php?file=test2.php" target="_blank">print 2</a>
<a href="print.php?file=test3.php" target="_blank">print 3</a>

ไฟล์นี้ก็ไม่มีอะไร เป็นไฟล์หน้าหลักสำหรับแสดงรายการหน้าที่พิมพ์ได้ทั้งหมด

ทดสอบพิมพ์หน้านี้
หรือทำการเขียน query เพื่อแสดงข้อมูลในหน้านี้ และข้อมูลในหน้านี้จะถูกพิมพ์ออกทางเครื่องพิมพ์

ส่วนหน้านี้ก็เป็นหน้าเอกสารที่จะถูกผิมพ์ครับ ถ้าหน้านี้แสดงรูป หน้าที่พิมพ์ก็จะออกมาเป็นรูปภาพ สามารถทำการ query ออกมาจาก db หรือเตรียมไว้ก่อน ยังไงก็ได้ครับ

<html>
<body onload="window.print()">
<?php
     echo file_get_contents( $_GET[file] );
?>

</body>
</html>

ส่วนหน้านี้เป็นตัวกลางสำหรับพิมพ์ครับ โดยที่ ความสำคัญมันอยู่ที่ <body onload="window.print()"> ครับ คือหมายถึงว่า ให้พิมพ์หน้านี้เมื่อทำการโหลดเสร็จ

ส่วนคำสั่ง file_get_contents( $_GET[file] ); ก็เป็นการสั่งให้ไปโหลดหน้าที่ต้องการพิมพ์มาแสดงยังหน้านี้เท่านั้นครับ อาจใช้เป็นคำสั่ง หรือ query จากฐานข้อมูลมาแสดงแทนก็ได้ครับ

Relate

^