Site icon บริษัท โค๊ดบี จำกัด

PHP Codeigniter เน้นใช้งาน : ตอน 2 รับส่งค่าระหว่าง views และ controllers

php-codeigniter-framework

php-codeigniter-framework

<p><strong>PHP Codeigniter เน้นใช้งาน &colon; ตอน 2 รับส่งค่าระหว่าง views และ controllers<&sol;strong><&sol;p>&NewLine;<p>จากบทความที่แล้วเราได้ทำความเข้าใจเบื้องต้น ตั้งแต่การดาวน์โหลดไฟล์ จนถึงขั้นตอนการติดตั้ง codeigniter<br &sol;>&NewLine;บทความนี้เราจะเริ่มลงมือเขียนโปรแกรม โดยเริ่มจากการสร้างไฟล์ views และ controllers<br &sol;>&NewLine;ไปจนถึงการรับส่งตัวแปรระหว่างกัน<br &sol;>&NewLine;<&excl;--more--><br &sol;>&NewLine;อ่านบทความ ตอน 1 <a href&equals;"http&colon;&sol;&sol;codebee&period;co&period;th&sol;labs&sol;เรียน-php-codeigniter-เน้นใช้งาน-ตอน-1-hello-codeignit&sol;" target&equals;"&lowbar;blank" rel&equals;"noopener noreferrer">ดาวน์โหลดและติดตั้ง codeinginter<&sol;a><&sol;p>&NewLine;<p><strong>1<&sol;strong>&period; เปิดโฟลเด้อโปรเจคของเราครับ ไปที่ application&sol;controllers&sol;Welcome&period;php<br &sol;>&NewLine;เปิดไฟล์ Welcome&period;php กับโปรแกรม editor ทั่วไป ทำการแก้ไขชื่อ class เป็น Home ลบ comment text ออกไป<br &sol;>&NewLine;และเซฟไปที่ path เดิมตั้งชื่อไฟล์ว่า application&sol;controllers&sol;home&period;php<&sol;p>&NewLine;<pre class&equals;"lang&colon;php decode&colon;true " title&equals;" application&sol;controllers&sol;home&period;php">&lt&semi;&quest;php&NewLine;defined&lpar;'BASEPATH'&rpar; OR exit&lpar;'No direct script access allowed'&rpar;&semi;&NewLine;class Home extends CI&lowbar;Controller &lbrace;&NewLine;&Tab;public function index&lpar;&rpar;&NewLine;&Tab;&lbrace;&NewLine;&Tab;&Tab;&dollar;this-&gt&semi;load-&gt&semi;view&lpar;'welcome&lowbar;message'&rpar;&semi;&NewLine;&Tab;&rcub;&NewLine;&rcub;&NewLine;<&sol;pre>&NewLine;<p>หลักการตั้งชื่อ class ในภาษาพีเอชพี จะต้องขึ้นต้นด้วยอักษรตัวพิมพ์ใหญ่ ส่วนชื่อไฟล์เป็นตัวพิมพ์เล็กก็ได้ครับ<br &sol;>&NewLine;จะสังเกตุเห็นว่าทุก class ใน application&sol;controllers&sol; จะต้องทำการ extends คลาสหลักของ CI<br &sol;>&NewLine;คือ CI&lowbar;Controller<&sol;p>&NewLine;<p><strong>1&period;1<&sol;strong> เราได้โค๊ดต้นแบบของไฟล์ controllers มาแล้วต่อไปเราจะทดลองส่งค่าตัวแปรออกไปแสดงผลในส่วนของ views กันนะครับ<br &sol;>&NewLine;ในการส่งค่าออกไปให้ view นั้นเราจะส่งไปในรูปแบบของตัวแปรแบบ array ครับ<br &sol;>&NewLine;โดยให้เราทดลองสร้างตัวแปรแบบ array ขึ้นมาและกำหนดค่าให้ตัวแปรครับ<&sol;p>&NewLine;<pre class&equals;"lang&colon;php decode&colon;true " title&equals;"application&sol;controllers&sol;home&period;php">&lt&semi;&quest;php&NewLine;defined&lpar;'BASEPATH'&rpar; OR exit&lpar;'No direct script access allowed'&rpar;&semi;&NewLine;&NewLine;class Home extends CI&lowbar;Controller &lbrace;&NewLine;&Tab;public function index&lpar;&rpar;&NewLine;&Tab;&lbrace;&NewLine;&Tab;&Tab;&dollar;data&lbrack;'title'&rsqb; &equals; "หน้าแรก"&semi;&NewLine;&Tab;&Tab;&dollar;this-&gt&semi;load-&gt&semi;view&lpar;'welcome&lowbar;message'&rpar;&semi;&NewLine;&Tab;&rcub;&NewLine;&rcub;<&sol;pre>&NewLine;<p>จากนั้นให้เราเปลี่ยนการโหลด views จาก welcome&lowbar;message เป็น home&lowbar;view<&sol;p>&NewLine;<p>home&lowbar;view มาจากไฟล์ home&lowbar;view&period;php แต่ตอนใช้คำสั่ง load-&gt&semi;view ของ ci ไม่ต้องใส่นามสกุลของไฟล์ครับ เป็นไฟล์ที่เราจะสร้างไว้ในโฟลเด้อ views ซึ่งเป็นไฟล์ที่จะประมวลผลในโค๊ดในส่วน front-end คือ html&comma;css&comma;javascript &rpar;<br &sol;>&NewLine;การส่งตัวแปรจาก controllers ไป views สำหรับ ci แล้วง่าย ๆ เลยครับแค่เพิ่ม parameter เข้าไปต่อจากชื่อไฟล์ เราก็จะได้โค๊ดดังนี้ครับ<&sol;p>&NewLine;<pre class&equals;"lang&colon;php decode&colon;true " title&equals;"application&sol;controllers&sol;home&period;php">&lt&semi;&quest;php&NewLine;defined&lpar;'BASEPATH'&rpar; OR exit&lpar;'No direct script access allowed'&rpar;&semi;&NewLine;&NewLine;class Home extends CI&lowbar;Controller &lbrace;&NewLine;&Tab;public function index&lpar;&rpar;&NewLine;&Tab;&lbrace;&NewLine;&Tab;&Tab;&dollar;data&lbrack;'title'&rsqb; &equals; "หน้าแรก"&semi;&NewLine;&Tab;&Tab;&dollar;this-&gt&semi;load-&gt&semi;view&lpar;'home&lowbar;views'&comma;&dollar;data&rpar;&semi;&NewLine;&Tab;&rcub;&NewLine;&rcub;<&sol;pre>&NewLine;<p><strong>เสร็จโค๊ดในส่วนของ controllers<&sol;strong><&sol;p>&NewLine;<p>2&period; หลังจากที่เราได้สร้าง home&period;php ที่เป็น controllers และส่งตัวแปรออกมาแล้ว ตอนนี้เราจะยังไม่สามารถ<br &sol;>&NewLine;ทดสอบโค๊ดที่เราเขียนไว้ได้ จนกว่าเราจะสร้างไฟล์ home&lowbar;view&period;php ที่ตัว home controllers ได้ทำการเรียกโหลดไปแสดงผล<&sol;p>&NewLine;<p>ขั้นตอนการสร้างไฟล์ home&lowbar;view&period;php ก็ง่าย ๆ ครับ เปิดโปรแกรม editor ใส่โค๊ด html<br &sol;>&NewLine;เสร็จแล้วเซฟไฟล์ไปที่ application&sol;views&sol;home&lowbar;view&period;php<&sol;p>&NewLine;<p>ใน home&period;php ซึ่งเป็น controllers ที่เราได้สร้างไว้ เราได้ส่งตัวแปรแบบ array<br &sol;>&NewLine;ที่ชื่อว่า &dollar;data มาให้ home&lowbar;view&period;php<br &sol;>&NewLine;ให้ทดสอบโดยการ echo &dollar;title ดูครับว่าตัวแปรนี้ได้ถูกส่งออกมาอย่างถูกต้องหรือป่าว<br &sol;>&NewLine;จะได้โค๊ดในไฟล์ home&lowbar;view&period;php ประมาณนี้ครับ<&sol;p>&NewLine;<pre class&equals;"lang&colon;php decode&colon;true " title&equals;"home&lowbar;view&period;php">&lt&semi;html&gt&semi;&NewLine; &lt&semi;head&gt&semi;&NewLine; &lt&semi;title&gt&semi;&lt&semi;&quest;php echo &dollar;title&semi; &quest;&gt&semi;&lt&semi;&sol;title&gt&semi;&NewLine; &lt&semi;&sol;head&gt&semi;&NewLine; &lt&semi;body&gt&semi;&NewLine; &Tab;&lt&semi;&quest;php echo &dollar;title&semi; &quest;&gt&semi;&NewLine; &lt&semi;&sol;body&gt&semi;&NewLine;&lt&semi;&sol;html&gt&semi;&NewLine;<&sol;pre>&NewLine;<p>หากโค๊ดที่เราเขียนถูกต้องทั้งทางฝั่ง controllers และ views ผลลัพธ์ที่ได้เราจะเห็นค่าของตัวแปร &dollar;title<br &sol;>&NewLine;แสดงประมาณรูปด้านล่างครับ<&sol;p>&NewLine;<p><img src&equals;"http&colon;&sol;&sol;codebee&period;co&period;th&sol;labs&sol;wp-content&sol;uploads&sol;2016&sol;03&sol;codeigniter-การรับส่งค่าระหว่าง-controllers-และ-views-001&period;png" alt&equals;"codeigniter การรับส่งค่าระหว่าง controllers และ views"><&sol;p>&NewLine;<p>เจอกันใหม่ตอนหน้าครับ PHP Codeigniter เน้นใช้งาน<&sol;p>&NewLine;

Exit mobile version