ตัวอย่างไฟล์ Excel ที่เราจะทำการเขียนโปรแกรมเพื่ออ่าน การ upload และอ่านไฟล์ MS Excel เพื่อนำไปใช้ในระบบ เช่นบันทึกลงฐานข้อมูล หรือนำไปแสดงผลใน GridView (ตามตัวอย่าง) สามารถทำได้โดยใช้ PHPExcel Package ซึ่งสามารถทำได้ดังนี้ สำหรับ PHPExcel สามารถดูรายละเอียดได้ที่ https://github.c...
เครื่องมือในการประเมินสุขภาพด้วยตนเองสำหรับนักไอที สามารถประเมินได้หลายอย่าง ประเมินดัชนีมวลกาย (BMI) ประเมินตนเองเรื่อง พฤติกรรมการกิน ออกกำลัง และอารมณ์ ประเมินภาวะเครียดด้วยตัวเอง ประเมินความเสี่ยงต่อเบาหวาน โดยสามารถคลิก ประเมินสุขภาพ เพื่อใช้งานระบบ หรือเข้า URL : http...
สำหรับบทเรียนรู้นี้มาสร้างแผนที่ Google Map แบบ Cluster ใน Yii Framework 2 กันครับ โดยจุดพิกัดจะรวมกันเมื่อมีการ Zoom Out และจะแยกกันเมื่อมีการ Zoom In ทำให้ดูง่ายและไม่ลายตาครับ ถือว่าบทเรียนรู้นี้เป็นภาคต่อของ "Extension การสร้างแผนที่แบบต่างๆ ด้วย Google Map ใน Yii Framework 2" ก็ว่า...
บทเรียนรู้นี้เป็นการทดสอบการเขียนโปรแกรมใน Yii2 เพื่อส่งข้อมูลเข้า LINE Group โดยใช้ Notify Bot โดยเป็นการดึงข้อมูลจากฐานข้อมูลแล้วส่งข้อมูลเข้ากลุ่ม (เป็นตัวอย่างการทดสอบ) โดยมีขั้นตอนต่างๆ ดังนี้ เข้า LINE Notify Login เพื่อสร้าง Token และ Bot เพิ่ม LINE Notify เข้าใน LINE Group เขีย...
สวัสดีครับ สำหรับบทเรียนรู้นี้เรามาพูดถึงการปรับแต่งหน้าเว็บไซต์ให้แสดงผลสีเทา โดยการใช้ CSS ซึ่งสามารถทำได้โดยใช้คำสั่งต่อไปนี้ <style> html{ -moz-filter: grayscale(100%); /* IE */ filter: progid:DXImageTransform.Microsoft.BasicImage(grayscale=1); filte...
Bower เป็นแหล่งรวบรวม Package เช่น JavaScript, CSS Package ตัวอย่าง Bootstrap, Highcharts เป็นต้น ในที่นี้เราจะติดตั้ง Highcharts และทดลองใช้งานใน Yii Framework 2 การติดตั้ง ก่อนอื่น เรามาเตรียมตัวก่อนการใช้งานโดยต้องติดตั้ง Node.js และ ทำการ install bower ให้เรียบร้อยโดยใช้...
ในบทเรียนรู้นี้เราจะมาเรียนรู้การใช้งาน Autocomplete ซึ่งเป็นการค้นหาข้อมูลใน TextInput ด้วยการพิมพ์ตัวอัษรแล้วระบบจะกรองข้อมูลมาให้ เช่น พิมพ์ การ ระบบจะค้นหาข้อความที่มีตัวอักษร การ มาเพื่อให้เป็นตัวเลือกนั่นเอง jQueryUI เป็น package ที่สามารถติดตั้งเพิ่มเติมใน Yii Framework 2 ได้โดยใช...
ในบทเรียนรู้นี้เรามาทดลองใช้งาน Realtime Database ใน Firebase ด้วย Yii Framework 2 กันครับ (จริงๆ แล้วสามารถทดลองเขียนแบบไม่ต้องใช้ Yii Framework ก็ได้นะ ลองเอาไปประยุกต์นะครับ) คุณสมบัติเด่นของ Realtime Database ก็ตรงตัวอยู่แล้วนะครับ คือเป็นการทำงานแบบ Realtime ในการทดสอบนี้จะทดลองเขียนเพื่...
การ Login เข้าสู่ระบบใน Yii Framework 2 นั้นโดยปกติเมื่อเข้าระบบแล้วจะสามารถเข้าส่วน Backend และ Frontend โดยไม่ต้อง Login ใหม่ หากต้องการแยก Session การทำงานระหว่าง Backend และ Frontend ก็สามารถทำได้โดยตั้งค่า config ในไฟล์ frontend/config/main.php และ backend/config/main.php ในส่วนของ Componen...
หลักการของการพ้องรูป(Polymorphism) คือการกำหนดให้คลาส(Class) มี พฤติกรรม(Method) ชื่อเหมือนกัน โดยสามารถกำหนดได้ 2 แบบ คือ Abstract และ Interface Interface เป็นการกำหนดคลาส(Class) และ พฤติกรรม(Method) ที่ไม่มีตัว(Body) เวลานำไปใช้งานจะต้องทำการ implement interface ตัวอย่าง Interface...
Encapsulation เป็นการห่อหุ้มหรือกำหนดการเข้าถึงคุณสมบัติ(Property) และพฤติกรรม(Method) ของคลาส(Class) โดยมี keyword 3 คำคือ private, protected และ public ซึ่งขออธิบายแบบพอเข้าใจได้ดังนี้ Private เป็นการกำหนดให้สามารถใช้งานได้เฉพาะในคลาส (Class) เท่านั้น คลาส(Class) อื่นไม่สามารถเรียกใช้งานได้...
คุณสมบัติอีกอย่างที่สำคัญของการเขียนโปรแกรมเชิงวัตถุคือการสืบทอด(Inheritance) โดยคลาส(Class) หนึ่งสามารถสืบทอดจากอีกคลาส(Class) ได้ โดยใช้ keyword ว่า extends ซึ่งคลาสที่สืบทอดไปแล้วนั้นจะมีคุณสมบัติ(Property) และ พฤติกรรม(Method) เหมือนคลาสแม่ทุกประการ ยกเว้นการกำหนด encapsulation หรือการห่อหุ้ม ที...
Object หรือวัตถุนั้นถูกสร้างขึ้นจากคลาส(Class) โดยใช้ keyword ว่า new ซึ่งจะมีคุณสมบัติ(Property) และพฤติกรรม(Method) เหมือนกันกับคลาส(Class)ทุกประการ ตัวอย่างการสร้างวัตถุ(Object) <?php class MyClass { //กำหนดคุณสมบัติ(Property) public $myvar = 'สวัสดีชาวโลก'; //กำหนดพ...
ในการกำหนดคลาส(Class) นั้นเริ่มต้นด้วย keyword ว่า class จากนั้นตามด้วยชื่อคลาส และตามด้วยเครื่องหมายปีกกา ซึ่งภายในคลาสจะประกอบไปด้วย คุณสมบัติ(Property) และพฤติกรรมหรือระเบียบวิธีการ(Method) การตั้งชื่อคลาส(Class) สามารถตั้งได้ตามรูปแบบของ PHP โดยเริ่มจากตัวอักษรหรือ _ (Underscore) แล้วตา...
สวัสดีครับ ในบทเรียนรู้นี้เรามาเรียนรู้การทำให้ GridView สามารถ Sort หรือเรียงลำดับได้โดยการลากวางแล้วบันทึกค่าการเรียงลำดับลงในฐานข้อมูล โดยใช้ Package ที่มีชื่อว่า https://github.com/richardfan1126/yii2-sortable-gridview การติดตั้ง สำหรับการติดตั้งสามารถติดตั้งผ่าน Composer ได...
สวัสดีครับก็เป็นกระแสมาสักระยะแล้วสำหรับ LINE Bot ซึ่งตอนนี้เปิดให้ใช้งานแบบ Trial โดยยังเป็น Beta Version อยู่ ดังนั้นในบทเรียนรู้นี้มาลองทำความรู้จักกับ LINE Bot กัน กับการใช้งานผ่าน cURL กันก่อน (จริงๆ ตอนนี้มี PHP SDK) เรื่อง PHP SDK ค่อยว่ากันต่อไปครับ ในที่นี้เราจะสร้าง LINE Bot ให...
ไม่ได้เข้า Google Font หลายวัน วันนี้มีโอกาสได้เข้า https://www.google.com/fonts มีตัวเตือนว่า A new version of Google Fonts is available. Take me there. ก็เลยได้คลิกเข้าไปดู "มันเจ๋งอ่ะ" มีลูกเล่นต่างๆ เพิ่มขึ้น เช่น การเปลี่ยนสีพื้นหลัง เป็นต้น นอกจากนั้นยั...
Yii2 Scroll Pager เป็น Package สำหรับโหลดหน้าต่อไปแทนการใช้งาน Pagination นั่นเอง รายละเอียดดูได้ที่ https://packagist.org/packages/kop/yii2-scroll-pager การติดตั้ง Yii2 Scroll Pager นั้นให้พิมพ์คำสั่ง composer require kop/yii2-scroll-pager จากนั้นกำหนดค่าใน ListView และ Gr...
Multiple Input เป็นการเพิ่ม Input ในลักษณะ เรียกใช้งาน JavaScript เพื่อเพิ่มช่องสำหรับกรอกข้อมูล เหมาะสำหรับการบันทึกข้อมูลในลักษณะ Master Detail เช่น ใบสั่งซื้อ กับรายการสินค้าที่สั่งซื้อ โดยที่ ใบสั่งซื้อ 1 ใบ มีรายการสินค้าได้หลายชิ้น นั่นเอง จากตัวอย่างนี้เราจะใช้ Package เสริมสำหรับ Yii2...
การสร้าง Barcode ด้วย Yii Framework 2 นั้นสามารถทำได้โดยใช้ Extension yii2-mpdf https://packagist.org/packages/kartik-v/yii2-mpdf ซึ่งสามารถติดตั้งผ่าน composer โดยพิมพ์คำสั่ง composer require kartik-v/yii2-mpdf คัดลอกไฟล์ kv-mpdf-bootstrap.css จาก yii2-project\vendor\...
ใน Part 2 เป็นการตั้งค่า Yii Framework เพื่อให้สามารถ Connect กับ Social Network ต่างๆ ได้ และทำการแสดงข้อมูลเมื่อเชื่อมต่อได้ ติดตั้ง AuthClient ทำการติดตั้ง AuthClient โดยพิมพ์คำสั่ง ใน Project ดังนี้ composer require --prefer-dist yiisoft/yii2-authclient เปิดการใช้งาน...
AuthClient เป็น Extension สำหรับ Yii Framework 2 ซึ่งทำให้เราสามารถเชื่อมต่อกับ Social Media ได้อย่างง่ายดาย เช่นการเข้าระบบด้วย Facebook, Live, LinkedIn, Google+, Twitter และอื่นๆ ติดตั้ง Yii Framework 2 ทำการสร้าง Project ชื่อ yii2-social composer create-project yiisoft/yii2-app-adv...
มาปรับท่านั่งสำหรับการทำงานกับคอมพิวเตอร์กันนะครับ Developer ทั้งหลาย เพื่อให้การทำงานได้ดียิ่งขึ้น ไม่ปวดหลัง วิธีการนั่งใช้งานคอมพิวเตอร์ที่ถูกต้อง พร้อมวีดีโอประกอบ เราทุกคน ต่างนั่งใช้งานเครื่องคอมพิวเตอร์กันทุกวัน แต่รู้กันหรือไม่ ว่าท่านั่งใช้งานของเรานั้น ถูกต้องแล้วหรือยัง เพราะว่าล่...
function number_format() เป็น function ที่ทำงานเกี่ยวกับการจัดรูปแบบตัวเลข เช่น การใส่ตัวคั่นหลักพัน จำนวนจุดทศนิยม เป็นต้น โดยมีรูปแบบการใช้งานดังนี้ string number_format ( float $number , int $decimals = 0 , string $dec_point = "." , string $thousands_sep = "," ) $number คือ ตัวเลขที่อาจ...
การติดตั้ง Yii Framework 2 บน Windows Server ในที่นี้ใช้ Windows Server 2008 ในการติดตั้ง ใช้ฐานข้อมูล Microsoft SQL Server และใช้ IIS เป็น Web Server เริ่มจากการตั้งค่า IIS ด้วย Internet Information Services Manager จากนั้นคลิกเลือก Sites หากยังไม่มีให้สร้างใหม่ จากนั้นกด Basic Set...
การติดตั้งและใช้งาน Google Visualization Organization Chart โดยติดตั้งผ่าน Composer การติดตั้ง สำหรับการติดตั้งจะติดตั้ง Package ด้วย Composer โดยพิมพ์คำสั่ง composer require kongoon/yii2-orgchart การใช้งาน [['v' => 'ค่าอ้างอิง(NodeID)', 'f' => 'ส่วนแสดงผลใช้ HTML ได้'],...
C3JS เป็น JavaScript Chart ซึ่งสามารถนำมาใช้ได้ภายใต้ MIT License สำหรับ Yii Framework 2 นั้น ผมได้ทำ Package ไว้สำหรับติดตั้งและใช้งาน ดังนี้ การติดตั้ง สำหรับการติดตั้งพิมพ์คำสั่ง composer require kongoon/yii2-c3js-chart การใช้งาน ตัวอย่างการใช้งานใน view ของ Yii2 &...
การแก้ไขปัญหาเมื่อสั่งติดตั้ง composer-asset-plugin แล้วเกิด Error [ReflectionException] Class Fxp\Composer\AssetPlugin\Repository\NpmRepository does not exist โดยพิมพ์คำสั่งดังต่อไปนี้ composer global require fxp/composer-asset-plugin --no-plugins จากนั้นสั่ง update composer com...
รวม Atom Package ที่ควรมีติดไว้ใช้งาน Emmet Emmet ช่วยให้สามารถเขียน HTML และ CSS ได้รวดเร็วมากยิ่งขึ้น สามารถดู Cheat Sheet เพิ่มเติมได้ https://atom.io/packages/emmet Minimap Minimap มีหน้าตาคล้าย Sublime Text ซึ่งเป็น แถบเลื่อนเล็กๆ ไว้แสดงตำแหน่งปัจจุบันของ Code htt...
ธีมแนวราชการสำหรับ Yii Framework 2 สามารถติดตั้งผ่าน Composer โดยพิมพ์คำสั่ง composer require kongoon/yii2-theme-ratchakarn หากพบข้อผิดพลาดประการใดกรุณาแจ้ง Issue ได้ที่ https://github.com/kongoon/yii2-theme-ratchakarn/issues การใช้งาน สำหรับ frontend เปิดไฟล์ frontend/c...
ในบทเรียนรู้นี้มาทำความเข้าใจการติดต่อฐานข้อมูลด้วย PHP Data Object หรือ PDO โดยที่ PDO นั้นสามารถติดต่อฐานข้อมูลได้หลากหลายฐานข้อมูล เช่น MySQL, Microsoft SQL, SQLite, PosgreSQL, MongoDB หรือแม้แต่ Oracle ก็ได้เช่นกัน ในบทเรียนรู้นี้มาลองทำการติดต่อฐานข้อมูลต่างๆ กัน MySQL Microsoft SQL...
สำหรับบทเรียนรู้นี้เป็นการพัฒนา Web Application ภาษา PHP โดยใช้ Composer เป็นตัวจัดการ Package หากยังไม่รู้ว่า Comoser คืออะไรตามไปอ่านเพิ่มเติมได้ที่ Composer สำหรับ PHP Developer Composer เป็นโปรแกรมสำหรับจัดการ Package ต่างๆ ที่เราติดตั้งโดยเมื่อ Package ที่เราติดตั้งมีการ Update Composer ก็จะ...
BlameableBehavior เป็น behavior ใน Model มีไว้สำหรับการบันทึกผู้ Create และ Update โดยอัตโนมัติ เวลาที่เพิ่มข้อมูลจะนำ id ของ user ที่ login บันทึกลง created_by และ updated_by โดยอัตโนมัติ หากไม่มี User Login จะ return ค่าเป็น null https://github.com/yiisoft/yii2/blob/master/framewor...
การเลือกจังหวัดโชว์อำเภอ เลือกอำเภอโชว์ตำบล เป็นการเลือกลักษณะที่เป็น Dependence Drop Down List โดยใช้คุณสมบัติ AJAX ซึ่งจะไม่ทำให้หน้าเว็บไซต์ Refresh เพื่อป้องกันข้อมูลหายในขณะที่กรอกฟอร์ม โดยในตัวอย่างนี้เป็นการเลือกจังหวัด แล้วจะมีรายการอำเภอในจังหวัดนั้นแสดงใน Drop Down List ของอำเภอ และเมื่อเร...
สำหรับ Google Chart นั้นก็มีผู้ทำ Extension ไว้โดยตั้งชื่อว่า googlechart ซึ่งสามารถดาวน์โหลดได้ที่ http://www.yiiframework.com/extension/googlechart/ หลังจากดาวน์โหลดเสร็จเรียบร้อยแล้วให้นำไปวางใน protected/extensions/Hzl/ Pie Chart &nbs...
RGraph Extension เป็นส่วนเสริมที่สร้างขึ้นเพื่อการแสดงผลกราฟ โดยมีรูปแบบให้เลือกมากมายเช่นกัน โดยมีรูปแบบให้เลือกดังนี้ สามารถดาวโหลด Extension นี้ได้จาก URL http://www.yiiframework.com/extension/rgraph เมื่อดาวโหลดเรียบร้อยแล้วให้นำไปวางไว้ที่ protected/extensions/rgraph/...
การ Export หรือส่งออกข้อมูลจากหน้า admin นั้นจะใช้ Extension เสริมของ Yii Framework ที่ชื่อว่า ExportTableGridBehavior เป็นตัวช่วย โดยสามารถดาวโหลดได้ที่ http://www.yiiframework.com/extension/exportablegridbehavior/ สำหรับการติดตั้งและตั้งค่า...
Highcharts JS ก็เป็น JavaScript อีกตัวหนึ่งที่น่าสนใจในการทำแผนภูมิรูปแบบต่างๆ โดยสามารถทดลองใช้โดยการคลิ๊กที่เมนู Demo ในส่วนของ Controller ทดลองสร้างกราฟแท่งโดยสร้าง Action ใน Controller protected/controllers/SiteController.php โดยสร้าง actionChart2() ในส่วนของ View สร้างไฟล์ protect...
การแสดงข้อมูลแบบ JSON นิยมในการสร้างข้อมูลเพื่อทำกราฟ หรือแม้แต่การทำ Web Service ในที่นี้จะเป็นการแสดงข้อมูลแบบ JSON เพื่อส่งให้ jqWidgets นำไปแสดงผลเป็นกราฟ โดยสร้าง action Json() เพื่อแสดงผลข้อมูลดังนี้ เมื่อเรียก URL mycontroller/json ก็จะปรากฏข้อมูลดังนี้ {"data":[{"money":"30000","...
สำหรับ Application ที่ต้องการให้สมาชิกหรือบุคคลทั่วไปให้สามารถกดปุ่ม Like หรือชอบหน้านี้แล้วให้ไปแสดงสถานะใน Facebook ของคนๆ นั้น เราเรียกว่าการกดไลค์ โดยเราสามารถนำมาแสดงผลใน View ของเราได้ดังนี้ สร้าง Application ใน Facebook &...
ได้เห็น Concept ของ AJAX Button กันแล้วคราวนี้มาลองกับ Link กันบ้างนะครับ โดย Concept ก็จะยังคงคล้ายๆ กันอยู่ครับ แต่จะเปลี่ยนการส่งเป็นแบบ POST แทนนะครับ สร้าง actionAjaxLink() ใน Controller สำหรับสร้างฟอร์ม สร้าง View สำหรับสร้างฟอร์มชื่อ ajaxlink.php พร้อม Link สำหรับกดโดยจะใช้ Class ขอ...
AJAX หรือเรียกว่า Asynchronous JavaScript and XML เป็นลักษณะของการเขียนโปรแกรมแบบใหม่โดยใช้คุณสมบัติของ JavaScript ที่ทำงานในฝั่ง Client แล้ว Request ไปประมวลผลกับ Script ในฝั่ง Server แล้วนำข้อมูลที่ได้หลังจากการประมวลผลมา Update บริเวณที่ต้องการได้ โดยที่หน้าเว็บไซต์ไม่ Refresh ใหม่ ทำให้มีความรวด...
Flash Message คือข้อความที่แสดงเมื่อมีการกระทำใน Action ตัวอย่างเช่น หากมีการเข้าสู่ระบบสำเร็จก็แสดงข้อความบอกว่าเข้าสู่ระบบเรียบร้อย แต่หากว่ากรอก Username หรือ Password ผิดก็ให้แสดงข้อความแจ้งว่า Username หรือ Password ไม่ถูกต้อง เป็นต้น &nb...
สำหนับหน้า Error นั้นเราสามารถแก้ไขให้อยู่ในรูปของ Bootstrap ได้โดยการเรียกใช้ Class ที่แสดงเป็น Error ในที่นี้คือ class=”alert alert-danger" โดยเราสามารถกำหนด path ได้โดยเข้าไปดูใน protected/config/main.php ในส่วนของ errorHandler จะเห็นว่าไฟล์ View ของ Error จะอยู่ที่ views/site/e...
เราจะเรียกใช้ Object จาก Class CDateFormatter มาดูตัวอย่างในการแสดงผลดังนี้ ไปดู Code กันเลยนะครับ ในส่วนของ View ที่ต้องการแสดงผล เราจะส่งวันเวลาเข้าไป โดยหากต้องการการแสดงผลเพิ่มเติมสามารถดูเพิ่มเติมได้ที่ http://www.yiiframework.com/doc/api/1.1/CDateFormatter
สำหรับ Field เก็บข้อมูลแบบ DATE นั้นจะอยู่ในรูปของ ปีค.ศ.-เดือน-วัน เช่น 2014-01-20 เป็นต้น ดังนั้นใน Yii Booster Extension จะมีส่วนเสริมของ Bootstrap นั่นคือ bootstrap.datepicker.js ซึ่งสามารถ เรียกใช้งานผ่าน Widget ของ Yii Booster Extension ได้ โดยกำหนดในฟอร์มสำหรับรับข้อมูลวันที่ พร้อมจัดรูปแบบให...
การนำข้อมูลจากตารางอื่นมาแสดงนั้นเกิดขึ้นจากที่เราสร้างความสัมพันธ์แบบ BelongsTo ไว้ ตัวอย่างเช่น ในการแสดงผลรายการสินค้า จะมีการดึงประเภทสินค้ามาแสดงด้วยจะต้องมีการตั้งค่าดังต่อไปนี้ ในส่วนของ Products Mod...
มีบางครั้งที่เราต้องการให้การแสดงผลฟอร์มอยู่ในแนวเดียวกันกับ Object ของฟอร์มแบบแนวนอน ซึ่งเราสามารถกำหนดรูปแบบการแสดงผลของฟอร์มสำหรับ Yii Booster Extension โดยกำหนดที่ไฟล์ _form.php โดยเพิ่มตัวแปร ดังนี้ 'type'=>'horizontal' จากนั้นเรียกการแสดงผลได้ลักษณะดังนี้
ปัญหาของวันที่นั้นค่อนข้างสำคัญ ในประเทศไทย ส่วนใหญ่ใช้รูปแบบ พุทธศักราช เช่น 30/04/2559 แต่เมื่อบันทึกในฐานข้อมูลจะกลายเป็นคนละเรื่อง หากบันทึกลักษณะนี้ก็จะไม่สามารถนำมาคำนวณได้ต้องเขียนโปรแกรมวุ่นวายกันใหญ่ จะหาทางแก้อย่างไรให้พิมพ์ 30/04/2559 แล้วไปบันทึกในฐานข้อมูลเป็น 2016-04-30 ให้อัตโนมัติ หร...
การตรวจสอบหมายเลขประจำตัวประชาชนนั้นเราจะทำ 2 อย่างด้วยกันคือ รูปแบบของหมายเลขประจำตัวประชาชนคือ 1-1111-11111-11-1 ความถูกต้องของหมายเลขประจำตัวประชาชน การสร้าง MaskedInput MaskedInput เป็น Package ที่มีอยู่ใน Yii Framework 2 อยู่แล้ว ซึ่ง MaskedInput เป็นรูปแบบของการกำหนด...