วันจันทร์ที่ 26 พฤษภาคม พ.ศ. 2557

การสร้าง Popup หรือ Dialog สวย ๆ ด้วย jQuery UI

jQuery เป็น library ของ Javascript ที่ช่วยให้เราใช้ Javascript ได้ง่าย และรวดเร็ว ตามสโลแกนของ jQuery ที่ ว่า Write less, do more.

สำหรับการสร้าง Popup ความจริง Javascript มีฟังก์ชัน Alert() ให้ใช้ได้ทันที แต่มีข้อจำกัดที่เราไม่สามารถเปลี่ยนข้อความส่วนหัว หรือปรับแต่งใด ๆ ได้ แต่ถ้าใช้ Jquery สร้าง Popup ทำให้ได้ Popup สวย ๆ มีหลายแบบ ปรับแต่งข้อความต่าง ๆ ได้ตามต้องการ และถ้าใช้ควบคู่กับการติดต่อกับฐานข้อมูล เช่น ผ่าน Php และ mySQL ด้วยแล้ว ทำให้สามารถ สร้าง Dialog รับข้อมูล นำข้อมูลไปประมวลผลบน Server  และ รายงานผล โดยใช้ Popup โดยไม่ต้องเปลี่ยนหน้า เช่น
ดาวน์โหลดไฟล์ตัวอย่าง คลิกที่นี่
จากตัวอย่าง จะเห็นว่า มีฟอร์ม และมีการส่งข้อความไปยัง PHP และส่งผลกลับจาก PHP แล้วนำมาแสดงผ่าน Popup ของ jQuery (อ่านเรื่อง การส่งข้อมูลจาก jQuery ไปยัง PHP คลิกที่นี่)

Popup หรือ ที่เรียกว่า Dialog ของ jQuery เป็นอีก library หนึ่ง ชื่อ jQuery UI เข้าถึงได้ที่ http://www.jqueryui.com ซึ่งนอกจาก Dialog แล้ว ยังมีอื่น ๆ อีก เช่น การสร้างแถบ(Tab) การซ่อน/แสดงข้อความ(Accordion) ปฏิทิน (Date picker)และ ปุ่ม ต่าง ๆ เป็นต้น โดยมีรูปแบบ Themes ให้เลือกจำนวนมาก Dialog ในตัวอย่างข้างบน ใช้ Theme ชื่อ le-frog

Dialog ของ jQuery UI มีหลายอย่าง ได้แก่

  • Dialog พื้นฐาน เป็น Popup ทั่วไป
  • แบบเคลื่อนไหว (Animation) เช่น มีการเลื่อนลงหรือขึ้น เมื่อปิด หรือเปิด
  • Basic Modal  เป็น Dialog พื้นฐาน แต่ เมื่อเปิดจะไม่สามารถทำกิจกรรมบนหน้าเว็บได้ ้ต้องคลิกปิด Dialog ก่อน จึงจะทำงานต่อไปได้  โดยมีการ overlay หน้าเว็บเพื่อให้ทราบว่า ไม่สามารถทำงานในขณะที่ dialog ยังเปิดอยู่
  • Modal Confirmation เมื่อเปิดจะไม่สามารถทำกิจกรรมบนหน้าเว็บได้ ้ต้องคลิกปิด Dialog ก่อน จึงจะทำงานต่อไปได้  โดยมีการ overlay หน้าเว็บเพื่อให้ทราบว่า ไม่สามารถทำงานในขณะที่ dialog ยังเปิดอยู่
  • Modal Form เป็น Dialog แบบ Modal ใช้สำหรับรับการป้อนข้อมูลจากหน้าเว็บ
  • Modal Message เป็น Dialog แบบ Modal ใช้สำหรับบอกข้อมูล


ขั้นตอนการสร้าง Dialog มีดังนี้

  1. สร้างไฟล์ jquery ที่เกี่ยวข้อง และ เลือกรูปแบบ Template ที่ต้องการ จากเว็บไซต์ http://jqueryui.com
  2. เรียกใช้งาน dialog ที่ต้องการ
1. การสร้างไฟล์และเลือกรูปแบบ Theme
  1. ไปที่เว็บ http://www.jqueryui.com คลิกปุ่ม download
  2. จะพาไปหน้า Download Builder ซึ่งจะเห็นว่า มีหลายอย่างให้เลือก
     - UI Core ต้องเลือกทั้งหมด เพราะเป็นแกนหลัก
    - Interactions เราต้องสร้าง Dialog ให้เลือก Draggable และ Resizable
    - ในกรณีที่คลิกเพื่อไม่เลือก ถ้าหากลักษณะที่ไม่เลือกเกี่ยวข้องกับสิ่งที่เลือกไว้ จะมี Dialog แจ้ง

    - Widgets ให้เลือก Button และ Dialog

    - Effects ไม่ต้องเลือก
    - Themes ซึ่งเป็นรูปแบบ มีให้เลือกหลายอย่าง ถ้าอยากเห็นรูปแบบ ให้คลิกที่เมนู Theme คลิก Gallery 

    - เมื่อคลิกเลือก Theme จะมีตัวอย่างให้เห็น ทั้งหมด เช่น ปุ่ม Dialog เป็นต้น 

    - จากนั้นให้กดปุ่ม Download โปรแกรมจะสร้างไฟล์ และ ดาวน์โหลดในรูปของ Zip มาไว้ในเครื่องของเรา
  3. ไฟล์ที่ดาวน์โหลดมา ประกอบด้วย ไฟล์ตัวอย่าง(index.html) ไฟล์อธิบายวิธีใช้ อยู่ในห้อง development-bundle ไฟล์ Js อยู่ในห้อง Js และไฟล์ css พร้อมทั้งภาพที่จำเป็น อยู่ในห้อง css
  4.  ไฟล์ที่จะนำไปใช้คือ ไฟล์ js และ css ซึ่งมีมาให้ 2 อย่างคือ แบบมีคำอธิบาย และแบบประหยัด ซึ่งทั้งสองไฟล์มีข้อมูลเหมือนกัน เพียงแต่มีคำอธิบายเพิ่มขึ้นเท่านั้น ถ้าจะนำขึ้นเว็บ ให้ใช้ไฟล์แบบประหยัด ซึ่งจะมีคำว่า min อยู่ด้วย เช่น jquery-ui-1.10.4.custom.min.css หรือ jquery-ui-1.10.4.custom.min.js เป็นต้น
2. การใช้งาน

หลักการทำงาน คือสร้าง Tag เช่น
 กำหนด id และ title (ส่วนนี้จะเป็นส่วนหัวของ Dialog) แล้ว เขียนข้อความที่ต้องการให้แสดงใน Dialog ให้อยู่ภายใน Tag นี้ เช่น 
นี่เป็นข้อความที่แสดงใน Dialog
วิธีการ
  1. สร้างไฟล์ simple.html และ อ้างอิงถึงไฟล์ jQuery ที่ดาวน์โหลด ในส่วน ให้ถูกต้อง ทั้ง 3 ไฟล์ คือ jquery, jquery-ui และ css เช่น

    <!doctype html>
    <html>
    <head>
        <meta charset="utf-8">
        <title>dialog demo</title>
        <link rel="stylesheet" href="css/le-frog/jquery-ui-1.10.4.custom.min.css">
        <script src="js/jquery-1.10.2.js"></script>
        <script src="js/jquery-ui-1.10.4.custom.min.js"></script>
    </head>

  2. สร้าง สร้างปุ่มสำหรับเรียกใช้งาน Dialog และเขียน scrip เพื่อเรียกใช้งาน jQuery ดังนี้
    <body>
    <button id="opener">คลิกที่นี่</button>
    <div id="mydialog" title="ตัวอย่าง Dialog">ส่วนนี้คือข้อความที่ให้แสดงใน Dialog</div>
    <script>
    $(document).ready(function(){
    $( "#mydialog" ).dialog({ autoOpen: false });
    $( "#opener" ).click(function() {
    $( "#mydialog" ).dialog( "open" );
    });
    });
    </script>
    </body>
    </html>  

คำอธิบายโค้ด

  • $( "#mydialog" ).dialog({ autoOpen: false }); -- กำหนดไม่ให้แสดง dialog เมื่อเปิดหน้าเว็บนี้
  • $( "#opener" ).click(function() { -- เป็นการรอรับการคลิกที่ปุ่ม ถ้ามีการคลิก ให้ดำเนินการตามคำสั่งต่อไปนี้
  • $( "#mydialog" ).dialog( "open" ); -- ให้แสดง dialog โดยใช้ข้อมูลจาก id ชื่อ mydialog
เมื่อเรียกใช้งาน จะแสดง ดังนี้


ดาวน์โหลดไฟล์ simple.html และไฟล์ป js ไฟล์ css   คลิกที่นี่



วันศุกร์ที่ 16 พฤษภาคม พ.ศ. 2557

การส่งข้อมูล จาก jQuery ไปยัง PHP

jQuery เป็น Javascript Library ที่ช่วยให้การใช้งาน Javascript สะดวก รวดเร็วขึ้น เช่น ตัดปัญหาเรื่อง Browser ว่าจะใช้ได้หรือไม่ และอื่น ๆ อีกมากมาย และที่สำคัญ ในตัวอย่างนี้ จะเป็นการใช้ jQuery เพื่อส่งข้อมูลไปยัง PHP เพื่อเก็บลงฐานข้อมูลต่อไป แต่ในตัวอย่างนี้ จะเป็นการส่งข้อมูลไปยัง PHP และให้ PHP ส่งกลับมาที่ JQuery  และแสดงผ่านหน้าจอ Popup ของ JQuery

การใช้งานตามตัวอย่างนี้ จำเป็นที่ต้องทำเครื่องคอมให้เป็น Server หรือถ้าใครมี Server ที่ใช้งานได้ เช่นเดียวกัน โดยสร้างห้องบน Server และบันทึกไฟล์ต่าง ๆ ให้อยู่ในห้องเดียวกัน เพื่อความสะดวก จะได้ไม่ต้องอ้างอิงยืดยาว

ในตัวอย่างนี้ ใช้ XAMPP เพื่อจำลองเครื่อง Notebook ให้เป็น Server

ไฟล์ที่จะใช้งาน มี 3 ไฟล์ คือ

  1. index.html คือไฟล์หลัก ใช้เป็นแบบฟอร์มกรอกข้อมูล เพื่อส่งข้อมูลผ่าน jQuery ไปยัง PHP
  2. jquery-2.2.2.min.js คือไฟล์ jquery ที่ดาวน์โหลดมา เพื่อใช้งาน
  3. welcome.php คือไฟล์ PHP สำหรับรับข้อมูล และส่งกลับ
ไฟล์ทั้งหมด อยู่ในห้องเดียวกันบน Server


ก่อนอื่น ต้องไปดาวน์โหลด jQuery มาก่อน ที่ http://www.jquery.com


การดาวน์โหลด ให้ใช้รุ่น Production จะดีกว่า แต่ถ้าต้องการดูคำอธิบายในโค้ด ก็เลือก รุ่น Development ก็ได้

ไฟล์ index.html สำหรับสร้างฟอร์ม และส่งข้อมูล พร้อมทั้งรับข้อมูลที่ส่งมาจาก PHP มีโค้ด ดังนี้

<!doctype html>
<html>
<head>
<meta charset=utf-8>
<title>AJAX: POST</title>
</head>
<body>
<h2>ตัวอย่างการส่งข้อมูล จาก jQuery ไปยัง PHP</h2>
<form action="#">
ชื่อของท่าน <INPUT TYPE="TEXT" NAME="user_name" SIZE="40" maxlength="45">
<p><button type="submit">ส่งข้อมูล</button></p>
</form>

<script src="jquery-2.1.1.min.js"></script>
<script>
// listen for click
$('form').on('submit', function(e) {
$.post( 'welcome.php', $(this).serialize(), function(data) {
   alert( data);
});
// disable default action
e.preventDefault();
});

</script>
</body>
</html>

การใช้งาน jquery ต้องอ้างอิงถึงเสียก่อน คือ <script src="jquery-2.1.1.min.js"></script>

จากนั้น จึงรอรับการคลิก ส่งข้อมูลจากปุ่มส่งข้อมูล ที่ชื่อ submit เมื่อคลิก แล้ว จึงใช้คำสั่ง post เพื่อส่งข้อมูล ดังนี้

$.post( 'welcome.php', $(this).serialize(), function(data) {


  • $.post() ตัวอักษร $ เป็น shortcut สำหรับเรียกใช้ jquery ส่วนหลังจุดเป็น method ที่เรียกใช้งาน ถ้าจะส่งแบบ get ก็ได้ เป็น $.get() 
  • welcome.php คือไฟล์ที่จะรับข้อมูลไปดำเนินการ รับข้อมูลโดยใช้ $_POST หรือ $_GET แล้วแต่ว่า จะส่งมาอย่างไร 
  • $(this).serialize() คำว่า this เป็น Object หมายถึงแบบฟอร์มนี้ ส่วน serialize() เป็นคำสั่งที่ให้เอาข้อมูลในแบบฟอร์มทั้งหมด มาจัดทำเป็น key-value เพื่อส่งออก
  • function(data) {} เป็นการรับข้อมูลเข้ามาเพื่อดำเนินการ ในตัวอย่างนี้ เอามาแสดงเป็น popup ด้วยคำสั่ง alert()
ไฟล์ PHP มีดังนี้ (welcome.php)

<?php
$content = trim($_POST["user_name"]); 
echo "สวัสดีครับ คุณ" . $content. " จาก PHP";
?>

การส่งออกของ PHP ไปยัง jQuery คือใช้การ echo 

ตัวอย่างหน้าจอ 
แสดงแบบฟอร์มจากไฟล์ index.html

เมื่อพิมพ์ชื่อ และกดปุ่มส่งข้อมูล จะเรียกใช้งาน welcome.php และส่งกลับ พร้อมทั้งแสดงผ่าน popup ดังนี้

ถ้าสามารถส่งข้อมูล จาก html โดยใช้ jQuery ไปยัง PHP ได้ ก็สามารถจัดการกับข้อมูลได้ อย่างไรก็ได้ ตามต้องการ
จะเห็นว่า การทำงานของ PHP อยู่เบื้องหลัง และไม่มีการเปลี่ยนหน้าเว็บเหมือนสมัยก่อน



วันอังคารที่ 6 พฤษภาคม พ.ศ. 2557

การกำหนดเลขหน้าที่ต่างกัน ใน MS Word 2010

ถ้าต้องการให้เอกสารมีเลขหน้าต่างกัน เช่น 2 หน้าแรก ไม่มีเลขหน้า หน้าที่ 3 เริ่มต้น หมายเลขหน้า เป็นเลข 1 จะทำอย่างไร



หลักการ

ต้องแบ่งไฟล์เอกสารออกเป็นส่วน ๆ โดยใช้ Section Break หรือ การแบ่งส่วน ถ้าไม่ต้องการให้มีเลขหน้าในบางส่วน ให้ตัดส่วนเชื่อมโยงของส่วนถัดไปออก และ ลบหมายเลขหน้าของส่วนก่อนหน้านั้นออก ถ้าไม่ตัดการเชื่อมโยง เมื่อลบหมายเลขหน้า จะลบหมายเลขหน้าออกทั้งเอกสาร

วิธีการ

  1. กำหนดหมายเลขหน้าของเอกสารทั้งหมด โดยไปที่ แทรก > หมายเลขหน้า
  2. ไปที่่หน้าที 3 ซึ่งต้องการเริ่มต้นหมายเลขหน้า เป็นหน้าที่ 1
  3. คลิกที่ตำแหน่งเริ่มต้นของหน้าที่ 3 
  4. ไปที่ เค้าโครงหน้ากระดาษ > แทรกตัวแบ่งส่วนและหน้า > ตัวแบ่งส่วน > หน้าถัดไป
  5. ถ้าไม่สังเกต อาจจะไม่เห็นว่าเกิดอะไรขึ้น แต่ถ้ากด Ctrl + Shift + * เพื่อแสดงเครื่องหมายย่อหน้า และสัญลักษณ์การจัดรูปแบบอื่น ๆ หรือคลิกที่ เครื่องหมาย  แล้ว ดูที่การแบ่งส่วน จะเห็นมีข้อความการแบ่งส่วนให้เห็น
  6. กลับไปที่หน้าที่ต้องการเริ่มต้นหมายเลขหน้า เป็นหน้าที่ 1 (ปัจจุบันจะแสดงหน้าที่ 3) และดับเบิ้ลคลิกที่ตัวเลขหน้าเลขหน้า เพื่อเข้าสู่หัวกระดาษ
  7. คลิกเพื่อยกเลิก การเชื่อมโยงไปก่อนหน้า เพื่อตัดความสัมพันธ์ของแต่ละส่วนออก
  8. เมื่อตัดความสัมพันธ์ออกแล้ว จะเห็นว่า ข้อความ "เหมือนก่อนหน้า" หายไป
  9. ที่หมายเลขหน้า ให้คลิกขวา และเลือก จัดรูปแบบหมายเลขหน้า เพื่อกำหนดการเริ่มต้นของเลขหน้าใหม่
  10. กำหนดให้เริ่มต้นเป็นเลข 1 
  11. คลิก ตกลง จะเห็นหมายเลขหน้า เปลี่ยนเป็น เลข 1
  12. คลิกปุ่ม ปิดหัวกระดาษ ท้ายกระดาษ หรือ ดับเบิ้ลคลิก ที่บริเวณเนื้อความของหน้า ก็ได้
การกำหนดส่วนหน้าให้ไม่มีเลขหน้า
  1. กลับไปที่ส่วนแรก ในตัวอย่างนี้ คือหน้าที่ 2 ซึ่งเป็นคนละส่วนกันกับที่กำหนดหน้าแล้ว
  2. ดับเบิ้ลคลิกที่เลขหน้า เพื่อเข้าสู่ หัวกระดาษของส่วนนี้
  3. เลือกหมายเลขหน้า และกดปุ่ม Delete บนแป้นพิมพ์ เพื่อลบหมายเลขหน้าออก
  4. คลิกปุ่ม ปิดหัวกระดาษท้ายกระดาษ
  5. เป็นอันเสร็จ หน้า 1 และ หน้า 2 จะไม่มีเลขหน้า หน้าที่ 3 จะมีเลขหน้า เป็นเลข 1 ตามต้องการ