<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>codeigniter - itOffside.com | บทความการเขียนโปรแกรม เรื่องราวข้อมูลเทคโนโลยี</title>
	<atom:link href="https://www.itoffside.com/tag/codeigniter/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.itoffside.com</link>
	<description>ข้อมูลข่าวสารและเรื่องราวบนโลกของไอทีที่ ล้ำหน้า พร้อมสาระการเขียนโปรแกรมคอมพิวเตอร์</description>
	<lastBuildDate>Sun, 15 Sep 2024 14:50:51 +0000</lastBuildDate>
	<language>th</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>

<image>
	<url>https://www.itoffside.com/wp-content/uploads/2020/04/cropped-favicon-96x96-1-32x32.png</url>
	<title>codeigniter - itOffside.com | บทความการเขียนโปรแกรม เรื่องราวข้อมูลเทคโนโลยี</title>
	<link>https://www.itoffside.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Source code ระบบ การขาย, พิมพ์ใบกำกับภาษี/ใบเสร็จรับเงิน</title>
		<link>https://www.itoffside.com/source-code-e-invoice-print/</link>
					<comments>https://www.itoffside.com/source-code-e-invoice-print/#comments</comments>
		
		<dc:creator><![CDATA[Onmobile]]></dc:creator>
		<pubDate>Wed, 24 Apr 2019 04:00:08 +0000</pubDate>
				<category><![CDATA[Codeigniter]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[codeigniter]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[DataTables]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[php7]]></category>
		<guid isPermaLink="false">https://www.itoffside.com/?p=3080</guid>

					<description><![CDATA[<p>eInvoice คือ ระบบการขาย, พิมพ์ใบกำกับภาษี/ใบเสร็จรับเงิน(Invoice) เป็นระบบที่ช่วยให้การออกหลักฐานของการเสียภาษีมูลค่าเพิ่ม ออกให้กับลูกค้าทุกครั้งที่มีการเข้ามาซื้อสินค้า/บริการ จากเรา ซึ่งผมได้ทำออกมา เพื่อให้บุคคลที่สนใจสามารถนำไปเป็นตัวอย่าง Sourcecode หรือนำไปใช้งานได้ ระบบนี้จะพัฒนาต่อไปเรื่อยๆ...</p>
<p>The post <a href="https://www.itoffside.com/source-code-e-invoice-print/">Source code ระบบ การขาย, พิมพ์ใบกำกับภาษี/ใบเสร็จรับเงิน</a> first appeared on <a href="https://www.itoffside.com">itOffside.com | บทความการเขียนโปรแกรม เรื่องราวข้อมูลเทคโนโลยี</a>.</p>]]></description>
										<content:encoded><![CDATA[<p><strong>eInvoice</strong> คือ ระบบ<strong>การขาย</strong>, <strong>พิมพ์ใบกำกับภาษี</strong>/ใบเสร็จรับเงิน(<strong>Invoice</strong>) เป็นระบบที่ช่วยให้การออกหลักฐานของการเสียภาษีมูลค่าเพิ่ม ออกให้กับลูกค้าทุกครั้งที่มีการเข้ามาซื้อสินค้า/บริการ จากเรา ซึ่งผมได้ทำออกมา เพื่อให้บุคคลที่สนใจสามารถนำไปเป็นตัวอย่าง <strong>Sourcecode</strong> หรือนำไปใช้งานได้ ระบบนี้จะพัฒนาต่อไปเรื่อยๆ นะครับไม่มีหยุด<span id="more-3080"></span></p>
<p><strong>ความสามารถของระบบ<br />
</strong></p>
<ul>
<li>ทำงานบน Window, Linux, OSX</li>
<li>หน้าจอใช้งานง่าย สวยงาม</li>
<li>สามารถจัดการข้อมูลลูกค้าได้</li>
<li>สามารถจัดการข้อมูลสินค้าได้</li>
<li>สามารถสร้างการขายและพิมพ์ใบกำกับภาษีได้</li>
<li>มีระบบป้องกันการเข้าถึงข้อมูล</li>
<li>มีระบบการค้นหาข้อมูลการขาย</li>
<li>ระบบจัดการร้านค้า</li>
</ul>
<p><strong>เทคโนโลยีในการพัฒนาระบบ</strong></p>
<ul>
<li>PHP 7, PHP 8</li>
<li>MariaDB</li>
<li>Codeigniter 3.1.13</li>
<li>Bootstrap 4</li>
<li>Vuejs 2</li>
<li>jQuery 3</li>
<li>VSCode</li>
</ul>
<p><strong>รูปภาพหน้าจอ</strong></p>
 [<a href="https://www.itoffside.com/source-code-e-invoice-print/">See image gallery at www.itoffside.com</a>] 
<p><strong>*สนับสนุนโปรแกรม eInvoice*</strong><br />
<span style="color: #ff9900;"><strong>350 บาท</strong></span><span class="text_exposed_show"><br />
ธนาคารไทยพาณิชย์<br />
เลขบัญชี 351-253589-0</span></p>
<p><strong>ดาวน์โหลด<br />
</strong>inbox เพจ&nbsp;<a href="https://www.facebook.com/itoffside" target="_blank" rel="noopener">https://www.facebook.com/itoffside</a><br />
หรือ ติดต่อที่ไลน์ไอดี @eke8377p (มี @ ข้างหน้าด้วย)</p>
<p><strong>LINE ID:</strong></p>
<p><img decoding="async" class="" src="https://qr-official.line.me/L/GjDKhMhfT9.png" width="223" height="223"></p><p>The post <a href="https://www.itoffside.com/source-code-e-invoice-print/">Source code ระบบ การขาย, พิมพ์ใบกำกับภาษี/ใบเสร็จรับเงิน</a> first appeared on <a href="https://www.itoffside.com">itOffside.com | บทความการเขียนโปรแกรม เรื่องราวข้อมูลเทคโนโลยี</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://www.itoffside.com/source-code-e-invoice-print/feed/</wfw:commentRss>
			<slash:comments>5</slash:comments>
		
		
			</item>
		<item>
		<title>ใช้ Datatables กับ Codeigniter แบบ Server-Side (Ajax)</title>
		<link>https://www.itoffside.com/use-datatables-with-codeigniter-server-side-ajax/</link>
					<comments>https://www.itoffside.com/use-datatables-with-codeigniter-server-side-ajax/#comments</comments>
		
		<dc:creator><![CDATA[Onmobile]]></dc:creator>
		<pubDate>Sat, 06 Jan 2018 18:26:12 +0000</pubDate>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Codeigniter]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[codeigniter]]></category>
		<category><![CDATA[DataTables]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[MySQLi]]></category>
		<category><![CDATA[PHP Framework]]></category>
		<category><![CDATA[php workshop]]></category>
		<guid isPermaLink="false">https://www.itoffside.com/?p=2784</guid>

					<description><![CDATA[<p>สวัสดีครับคุณผู้อ่านทุกท่าน เมื่อคราวที่แล้ว ผมได้มีการลงบทความ การใช้งาน Datatables แบบบ้านๆ โดยใช้ PHP ธรรมดาในการ ทำงาน ซึ่งทางผมเองคาดว่าผู้อ่าน จะได้รับประโยนช์จากบทความ ไม่มากก็น้อยครับ ดังนั้นในบทความนี้ ผมก็เลยมาสอนการใช้ Datatables กับ Codeigniter ว่าต้องทำอย่างไรบ้าง เริ่มจากตรงไหนบ้าง ซึ่...</p>
<p>The post <a href="https://www.itoffside.com/use-datatables-with-codeigniter-server-side-ajax/">ใช้ Datatables กับ Codeigniter แบบ Server-Side (Ajax)</a> first appeared on <a href="https://www.itoffside.com">itOffside.com | บทความการเขียนโปรแกรม เรื่องราวข้อมูลเทคโนโลยี</a>.</p>]]></description>
										<content:encoded><![CDATA[<p><em>สวัสดีครับคุณผู้อ่านทุกท่าน</em> เมื่อคราวที่แล้ว ผมได้มีการลงบทความ การใช้งาน Datatables แบบบ้านๆ โดยใช้ <strong>PHP</strong> ธรรมดาในการ ทำงาน ซึ่งทางผมเองคาดว่าผู้อ่าน จะได้รับประโยนช์จากบทความ ไม่มากก็น้อยครับ</p>
<p>ดังนั้นในบทความนี้ ผมก็เลยมาสอนการใช้ <strong>Datatables</strong> กับ <strong>Codeigniter</strong> ว่าต้องทำอย่างไรบ้าง เริ่มจากตรงไหนบ้าง ซึ่งบทความนี้เหมาะกับคนที่เคยเขียน Codeigniter และเขียน <strong>javascript</strong> พอได้ ครับ<span id="more-2784"></span></p>
<p><span style="color: #ff00ff;">Demo</span><br />
<a href="http://sysapp.itoffside.com/datatables_ci/" target="_blank" rel="noopener">http://sysapp.itoffside.com/datatables_ci/</a></p>
<p><span style="color: #ff00ff;">Download</span><br />
<a href="https://github.com/ipball/datatables_ci/archive/master.zip" target="_blank" rel="noopener">https://github.com/ipball/datatables_ci/archive/master.zip<br />
</a></p>
<p><span style="color: #ff00ff;">Clone git</span><br />
<a href="https://github.com/ipball/datatables_ci.git" target="_blank" rel="noopener">https://github.com/ipball/datatables_ci.git</a></p>
<p><span style="color: #000080;"><strong>สิ่งที่ต้องเตรียม</strong></span><br />
1. ไฟล์ <a href="https://datatables.net/download" target="_blank" rel="noopener">plugins Datatables</a><br />
2. ไฟล์ <a href="https://jquery.com/download/" target="_blank" rel="noopener">jQuery</a><br />
3. <a href="http://getbootstrap.com/docs/3.3/" target="_blank" rel="noopener">Bootstrap framework</a><br />
4. <a href="https://www.codeigniter.com/" target="_blank" rel="noopener">Codeiniter framework</a><br />
5. <a href="https://raw.githubusercontent.com/ipball/datatables_ci/master/datatables.sql" target="_blank" rel="noopener">ฐานข้อมูล</a></p>
<p><em>เริ่มต้นกันเลยครับ</em></p>
<p>สร้างฐานข้อมูลชื่อ datatables แล้ว import ไฟล์ sql (ในข้อ 5)<br />
กำหนด application/config/config.php<br />
<img fetchpriority="high" decoding="async" class="alignnone size-full wp-image-2810" src="https://www.itoffside.com/wp-content/uploads/2018/01/datatables-with-codeigniter-10.jpg" alt="datatables-with-codeigniter-10" width="560" height="94" srcset="https://www.itoffside.com/wp-content/uploads/2018/01/datatables-with-codeigniter-10.jpg 560w, https://www.itoffside.com/wp-content/uploads/2018/01/datatables-with-codeigniter-10-300x50.jpg 300w" sizes="(max-width: 560px) 100vw, 560px" /></p>
<p>กำหนด application/config/database.php ให้ตรงตามค่าเซฟเวอร์<br />
<img decoding="async" class="alignnone size-full wp-image-2811" src="https://www.itoffside.com/wp-content/uploads/2018/01/datatables-with-codeigniter-09.jpg" alt="datatables-with-codeigniter-09" width="481" height="422" srcset="https://www.itoffside.com/wp-content/uploads/2018/01/datatables-with-codeigniter-09.jpg 481w, https://www.itoffside.com/wp-content/uploads/2018/01/datatables-with-codeigniter-09-300x263.jpg 300w" sizes="(max-width: 481px) 100vw, 481px" /></p>
<p>ให้เราสร้างไฟล์ <strong>index.php</strong> ไว้ในไฟล์ <span style="color: #000080;">Application/view/</span><br />
จะได้เป็น <span style="color: #000080;">Application/view/index.php</span></p>
<p><em>ต่อมาให้เรา</em>ทำการ Include ไฟล์ jquery, bootstrap, dataTables ไว้ &lt;body&gt; นะครับ จากตัวอย่างไว้ ล่างสุดของ body<br />
โดยไฟล์ที่เพิ่มจะมีด้วยกัน 4 ไฟล์นะครับ ซึ่งมี jquery, bootstrap, datatables(2 ไฟล์)<br />
<img loading="lazy" decoding="async" class="alignnone size-full wp-image-2798" src="https://www.itoffside.com/wp-content/uploads/2017/12/datatables-with-codeigniter-01.jpg" alt="datatables-with-codeigniter-01" width="963" height="278" srcset="https://www.itoffside.com/wp-content/uploads/2017/12/datatables-with-codeigniter-01.jpg 963w, https://www.itoffside.com/wp-content/uploads/2017/12/datatables-with-codeigniter-01-300x87.jpg 300w, https://www.itoffside.com/wp-content/uploads/2017/12/datatables-with-codeigniter-01-768x222.jpg 768w" sizes="auto, (max-width: 963px) 100vw, 963px" /></p>
<p>จากนั้น เพิ่ม css ไฟล์ไว้ใน &lt;header&gt; ตามรูปภาพด้านล่าง<br />
โดยมีด้วยกัน 2 ไฟล์คือ ไฟล์ bootstrap, datatables สำหรับ bootstrap<br />
<img loading="lazy" decoding="async" class="alignnone size-full wp-image-2799" src="https://www.itoffside.com/wp-content/uploads/2018/01/datatables-with-codeigniter-02.jpg" alt="datatables-with-codeigniter-02" width="941" height="192" srcset="https://www.itoffside.com/wp-content/uploads/2018/01/datatables-with-codeigniter-02.jpg 941w, https://www.itoffside.com/wp-content/uploads/2018/01/datatables-with-codeigniter-02-300x61.jpg 300w, https://www.itoffside.com/wp-content/uploads/2018/01/datatables-with-codeigniter-02-768x157.jpg 768w" sizes="auto, (max-width: 941px) 100vw, 941px" /></p>
<p>เมื่อเรา include ไฟล์ js, css มาครบแล้วที่นี้เราก็พร้อมที่จะใช้งานแล้วครับ แต่เราต้องสร้างตาราง ไว้ใน &lt;body&gt; กันก่อน สร้างตารางตามรูปภาพด้านล่างนี้เลยนะครับ<img loading="lazy" decoding="async" class="alignnone size-full wp-image-2800" src="https://www.itoffside.com/wp-content/uploads/2018/01/datatables-with-codeigniter-03.jpg" alt="datatables-with-codeigniter-03" width="744" height="362" srcset="https://www.itoffside.com/wp-content/uploads/2018/01/datatables-with-codeigniter-03.jpg 744w, https://www.itoffside.com/wp-content/uploads/2018/01/datatables-with-codeigniter-03-300x146.jpg 300w" sizes="auto, (max-width: 744px) 100vw, 744px" /></p>
<p>จากนี้จะเป็นการเรียกใช้งาน datatables โดยใช้ jQuery นะครับ โดยผมจะนำโค้ดไว้ล่างสุด ก่อน &lt;/body&gt; ลองดูตัวอย่างโค้ดครับ</p><pre class="crayon-plain-tag">&lt;script type="text/javascript"&gt;
    $(document).ready(function () {
      var table = $('#table_id').DataTable({
        pageLength: 10,
        serverSide: true,
        processing: true,
        ajax: {
          url:'&lt;?php echo site_url('customer/find_with_page'); ?&gt;'
        },
        'columns':[
        {
          data:'name',
          render: function(data, type, row){
            return '&lt;a href="&lt;?php echo site_url('customer/edit/'); ?&gt;'+row['id']+'"&gt;'+data+'&lt;/a&gt; ';
          }
        },
        {
          data:'phone'
        },
        {
          data:'fax'
        },
        {
          data:'state',
          render: function (data,type,row){
            var active = '&lt;span class="label label-success"&gt;ใช้งาน&lt;/span&gt;';
            var inactive = '&lt;span class="label label-danger"&gt;ยกเลิก&lt;/span&gt;';
            var status = (data==true) ? active : inactive;
            return status;
          }
        },
        {
          data:'id',
          render:function(data,type,row){
            var dataName = row['name'];
            var btnDelete = '&lt;a href="#" data-href="&lt;?php echo site_url('customer/delete'); ?&gt;" data-id="'+data+'" data-name="'+dataName+'" role="button" class="btn btn-danger btn-xs"&gt;&lt;i class="glyphicon glyphicon-trash"&gt;&lt;/i&gt; ลบ&lt;/a&gt;';
            return btnDelete;
          },
          orderable: false
        }
        ]
      });
    })
  &lt;/script&gt;</pre><p>ภาพตัวอย่าง<br />
<img loading="lazy" decoding="async" class="alignnone size-full wp-image-2801" src="https://www.itoffside.com/wp-content/uploads/2018/01/datatables-with-codeigniter-04.jpg" alt="datatables-with-codeigniter-04" width="921" height="636" srcset="https://www.itoffside.com/wp-content/uploads/2018/01/datatables-with-codeigniter-04.jpg 921w, https://www.itoffside.com/wp-content/uploads/2018/01/datatables-with-codeigniter-04-300x207.jpg 300w, https://www.itoffside.com/wp-content/uploads/2018/01/datatables-with-codeigniter-04-768x530.jpg 768w" sizes="auto, (max-width: 921px) 100vw, 921px" /></p>
<p><strong><span style="color: #000080;">อธิบายโค้ดคำสั่ง</span></strong><br />
โดยสังเกตุ นะครับ ว่าโค้ด jQueryส่วนของ var table = <strong><em>$(&#8216;#table_id&#8217;)</em></strong> จะต้องตรงกับ &lt;table id=&#8221;<em><strong>table_id</strong></em>&#8220;&gt; เพื่อใช้ในการอ้างอิงการทำงาน<br />
&#8211; <span style="color: #000080;">pageLength</span> หมายถึงจำนวนต่อหน้าที่แสดงผล<br />
&#8211; <span style="color: #000080;">serverSide</span> หมายถึง เปิดใช้งานโหมด server-side<br />
&#8211; <span style="color: #000080;">processing</span> หมายถึง เวลามีการเปลี่ยนแปลงข้อมูลให้แสดง label loading ขึ้นมา<br />
&#8211;  <span style="color: #000080;">ajax</span> { url:&#8230;} หมายถึงการเรียกดึงข้อมูลจาก server ในตัวอย่างดึงข้อมูลจาก site_url(&#8216;customer/find_with_page&#8217;) นั้นหมายถึง ว่าเราต้องมี controller ชื่อ Customer และ Method ชื่อ find_with_page เดี่ยวเราจะมาสร้าง Controller กันต่อครับ<br />
&#8211; &#8216;<span style="color: #000080;">columns</span>&#8216;:[] หมายถึง คอลัมน์ใน datatables มีอะไรบ้างเราสามารถกำหนดได้ที่นี้โดยอ้างอิงจากฟิล์ดข้อมูลที่เราดึงมาจาก server ด้วยครับ เช่นเราดึงข้อมูลมีฟิล์ด id, name, age ดังนั้นจะได้ &#8216;columns&#8217;:[data:&#8217;name&#8217;, data:&#8217;age&#8217;] โดยโค้ดนี้จะแสดง คอลัมน์ name, age ครับ กรณีถ้าเราต้องการ style column เราก็ใช้คำสั่ง render เช่น</p><pre class="crayon-plain-tag">'columns':[
        {
          data:'name',
          render: function(data, type, row){
            return '&lt;a href="&lt;?php echo site_url('customer/edit/'); ?&gt;'+row['id']+'"&gt;'+data+'&lt;/a&gt; ';
          }
        },</pre><p>สำหรับ <span style="color: #000080;">view/index.php</span> ก็มีเพียงเท่านี้นะครับ ต่อไปเราจะมาเขียนโค้ดในส่วนของ Controller และ Model กันต่อ</p>
<p>สร้างไฟล์ <strong>Customer.php</strong> ในโฟล์เดอร์<span style="color: #000080;"> application/controllers</span><br />
จะได้เป็น <span style="color: #000080;">application/controllers/Customer.php</span><br />
แล้วให้นำโค้ดนี้ไปวางไว้ใน ไฟล์ครับ</p><pre class="crayon-plain-tag">&lt;?php
defined('BASEPATH') or exit('No direct script access allowed');

class Customer extends CI_Controller
{
    public function __construct()
    {
        parent::__construct();
        $this-&gt;load-&gt;model('Customer_model');
    }

    public function index()
    {
        $this-&gt;load-&gt;view('customer/index');
    }

    public function find_with_page()
    {
        $order_index = $this-&gt;input-&gt;get('order[0][column]');
        $param['page_size'] = $this-&gt;input-&gt;get('length');
        $param['start'] = $this-&gt;input-&gt;get('start');
        $param['draw'] = $this-&gt;input-&gt;get('draw');
        $param['keyword'] = trim($this-&gt;input-&gt;get('search[value]'));
        $param['column'] = $this-&gt;input-&gt;get("columns[{$order_index}][data]");
        $param['dir'] = $this-&gt;input-&gt;get('order[0][dir]');

        $results = $this-&gt;Customer_model-&gt;find_with_page($param);

        $data['draw'] = $param['draw'];
        $data['recordsTotal'] = $results['count'];
        $data['recordsFiltered'] = $results['count_condition'];
        $data['data'] = $results['data'];
        $data['error'] = $results['error_message'];

        $this-&gt;output-&gt;set_content_type('application/json')-&gt;set_output(json_encode($data));
    }
}</pre><p><span style="color: #000080;"><strong>อธิบายโค้ด</strong></span><br />
Method <strong>find_with_page</strong><br />
<img loading="lazy" decoding="async" class="alignnone size-full wp-image-2803" src="https://www.itoffside.com/wp-content/uploads/2018/01/datatables-with-codeigniter-05.jpg" alt="datatables-with-codeigniter-05" width="678" height="237" srcset="https://www.itoffside.com/wp-content/uploads/2018/01/datatables-with-codeigniter-05.jpg 678w, https://www.itoffside.com/wp-content/uploads/2018/01/datatables-with-codeigniter-05-300x105.jpg 300w" sizes="auto, (max-width: 678px) 100vw, 678px" /></p>
<p><em>จากรูปภาพด้านบน</em> ตัวแปรอาเรย์ $param รับค่าจาก datatables มา แล้วเรานำค่านี้ส่งไปยัง model เพื่อ query ข้อมูลตามเงื่อนไขของ datatables เช่น ต้องการแสดงหน้า 2 หรือต้องการ sort ตารางนะครับ</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-2805" src="https://www.itoffside.com/wp-content/uploads/2018/01/datatables-with-codeigniter-06-1.jpg" alt="datatables-with-codeigniter-06" width="854" height="244" srcset="https://www.itoffside.com/wp-content/uploads/2018/01/datatables-with-codeigniter-06-1.jpg 854w, https://www.itoffside.com/wp-content/uploads/2018/01/datatables-with-codeigniter-06-1-300x86.jpg 300w, https://www.itoffside.com/wp-content/uploads/2018/01/datatables-with-codeigniter-06-1-768x219.jpg 768w" sizes="auto, (max-width: 854px) 100vw, 854px" /></p>
<p><em>จากรูปภาพด้านบน</em> บรรทัดที่ 27 เราใช้ model ในการ get ค่าจากฐานข้อมูลมาแล้วไว้ใน $results แล้ว ก็ส่งตอบกลับไปที่ datatables ในแบบ JSON ครับโดยจำเป็นต้องส่งไปคือข้อมูล<br />
&#8211; <span style="color: #000080;">draw</span><br />
&#8211; <span style="color: #000080;">recordsTotal</span> หมายถึงจำนวนทั้งหมดของข้อมูล<br />
&#8211; <span style="color: #000080;">recordsFiltered</span> หมายถึงจำนวนทั้งหมดของข้อมูลที่ กรองมาแล้ว<br />
&#8211; <span style="color: #000080;">data</span> หมายถึงข้อมูล เช่น name, email, phone<br />
&#8211; <span style="color: #000080;">error</span> หมายถึง error ข้อผิดพลาดจากการเรียกข้อมูล ถ้าไม่มีให้ใส่เป็นค่าว่าง</p>
<p>สำหรับ Controller มีเพียงเท่านี้ครับ แล้วเรามาเขียนส่วนของ Model ว่าทำอย่างไรถึงจะโยนข้อมูลในรูปแบบนี้มาให้ Controller</p>
<p>สำหรับ Model ให้เราสร้างไฟล์ <strong>Customer_model.php</strong> ไว้ในโฟล์เดอร์ <span style="color: #000080;">application/models</span><br />
ได้เป็น <span style="color: #000080;">application/models/Customer_model.php</span><br />
จากนั้นให้เรานำโค้ดนี้ไปใส่ในไฟล์</p><pre class="crayon-plain-tag">&lt;?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Customer_model extends CI_Model {
	public function __construct(){
		parent::__construct();
	}

	public function find_with_page($param){
		$keyword = $param['keyword'];
		$this-&gt;db-&gt;select('*');

		$condition = "1=1";
		if(!empty($keyword)){
			$condition .= " and (name like '%{$keyword}%' or phone like '%{$keyword}%')";
		}

		$this-&gt;db-&gt;where($condition);
		$this-&gt;db-&gt;limit($param['page_size'], $param['start']);
		$this-&gt;db-&gt;order_by($param['column'], $param['dir']);

		$query = $this-&gt;db-&gt;get('customer');
		$data = [];
		if($query-&gt;num_rows() &gt; 0){
			foreach($query-&gt;result() as $row){
				$data[] = $row;
			}
		}

		$count_condition = $this-&gt;db-&gt;from('customer')-&gt;where($condition)-&gt;count_all_results();
		$count = $this-&gt;db-&gt;from('customer')-&gt;count_all_results();
		$result = array('count'=&gt;$count,'count_condition'=&gt;$count_condition,'data'=&gt;$data,'error_message'=&gt;'');
		return $result;
	}
}</pre><p><span style="color: #000080;"><strong>อธิบายโค้ด</strong></span><br />
<img loading="lazy" decoding="async" class="alignnone size-full wp-image-2807" src="https://www.itoffside.com/wp-content/uploads/2018/01/datatables-with-codeigniter-07.jpg" alt="datatables-with-codeigniter-07" width="954" height="504" srcset="https://www.itoffside.com/wp-content/uploads/2018/01/datatables-with-codeigniter-07.jpg 954w, https://www.itoffside.com/wp-content/uploads/2018/01/datatables-with-codeigniter-07-300x158.jpg 300w, https://www.itoffside.com/wp-content/uploads/2018/01/datatables-with-codeigniter-07-768x406.jpg 768w" sizes="auto, (max-width: 954px) 100vw, 954px" /></p>
<p><em>จากรูปภาพด้านบน</em><br />
<strong>บรรทัด 9 &#8211; 27</strong> เป็นการ get ข้อมูลจากฐานข้อมูลโดยมีเงื่อนไขต่างๆที่รับตัวแปรมาจาก controller ครับ<br />
<strong>บรรทัดที่ 29</strong> คือ จำนวนทั้งหมดของข้อมูลแบบที่กรองข้อมูลมาแล้ว<br />
<strong>บรรทัดที่ 30</strong> คือ จำนวนข้อมูลทั้งหมด<br />
<strong>บรรทัดที่ 31</strong> คือ $result คืนค่าข้อมูลแบบ array มาโดยมี count, count_condition, data ,error_message</p>
<p>เสร็จแล้วครับ ผลลัพท์ได้เป็นดังนี้<br />
<img loading="lazy" decoding="async" class="alignnone size-large wp-image-2808" src="https://www.itoffside.com/wp-content/uploads/2018/01/datatables-with-codeigniter-08-1024x520.jpg" alt="datatables-with-codeigniter-08" width="660" height="335" srcset="https://www.itoffside.com/wp-content/uploads/2018/01/datatables-with-codeigniter-08-1024x520.jpg 1024w, https://www.itoffside.com/wp-content/uploads/2018/01/datatables-with-codeigniter-08-300x152.jpg 300w, https://www.itoffside.com/wp-content/uploads/2018/01/datatables-with-codeigniter-08-768x390.jpg 768w, https://www.itoffside.com/wp-content/uploads/2018/01/datatables-with-codeigniter-08.jpg 1185w" sizes="auto, (max-width: 660px) 100vw, 660px" /></p>
<p>เราสามารถ sort column ได้ ค้นหาชื่อลูกค้าได้ สามารถกำหนด style ใน column ได้ สามารถกำหนดว่าจะแสดงกี่แถวในหนึ่งหน้าได้ ซึ่งผมว่า datatables เหมาะนำไปใช้งานเกือบทุกๆงาน ครับ<br />
จบแล้วครับสำหรับการใช้ <strong>dataTables</strong> กับ <strong>Codeigniter</strong> หากใครมีคำถามข้อสงสัยเพิ่มเติมสามารถเขียนความเห็นด้านล่างไว้เลยนะครับ</p><p>The post <a href="https://www.itoffside.com/use-datatables-with-codeigniter-server-side-ajax/">ใช้ Datatables กับ Codeigniter แบบ Server-Side (Ajax)</a> first appeared on <a href="https://www.itoffside.com">itOffside.com | บทความการเขียนโปรแกรม เรื่องราวข้อมูลเทคโนโลยี</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://www.itoffside.com/use-datatables-with-codeigniter-server-side-ajax/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>การสร้าง Layout หรือ Template ใน Codeigniter</title>
		<link>https://www.itoffside.com/create-layout-template-in-codeigniter/</link>
					<comments>https://www.itoffside.com/create-layout-template-in-codeigniter/#respond</comments>
		
		<dc:creator><![CDATA[Onmobile]]></dc:creator>
		<pubDate>Sun, 25 Sep 2016 04:06:33 +0000</pubDate>
				<category><![CDATA[Codeigniter]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[codeigniter]]></category>
		<category><![CDATA[PHP Framework]]></category>
		<guid isPermaLink="false">https://www.itoffside.com/?p=2633</guid>

					<description><![CDATA[<p>สวัสดีครับ เพื่อนๆทุกท่าน วันนี้ผมมาแนะนำวิธีการทำ Template หรือ Layout ใน Codeigniter เวอร์ชั่น 3.0+ โดยวิธีนี้เป็นอีก 1 วิธีในการทำ Template ที่ง่ายต่อการเรียกใช้ โดยส่วนตัวผมคิดว่า วิธีการสร้าง Template ที่กำลังจะแนะนำนี้ผมว่าโอเคละ และตัวผมเองก็ใช้อยู่เหมือนกัน เดียวลองมาดูกันครับว่าสร้างกันอย่า...</p>
<p>The post <a href="https://www.itoffside.com/create-layout-template-in-codeigniter/">การสร้าง Layout หรือ Template ใน Codeigniter</a> first appeared on <a href="https://www.itoffside.com">itOffside.com | บทความการเขียนโปรแกรม เรื่องราวข้อมูลเทคโนโลยี</a>.</p>]]></description>
										<content:encoded><![CDATA[<p>สวัสดีครับ เพื่อนๆทุกท่าน วันนี้ผมมาแนะนำวิธีการทำ Template หรือ Layout ใน Codeigniter เวอร์ชั่น 3.0+ โดยวิธีนี้เป็นอีก 1 วิธีในการทำ Template ที่ง่ายต่อการเรียกใช้ โดยส่วนตัวผมคิดว่า วิธีการสร้าง Template ที่กำลังจะแนะนำนี้ผมว่าโอเคละ และตัวผมเองก็ใช้อยู่เหมือนกัน เดียวลองมาดูกันครับว่าสร้างกันอย่างไร<span id="more-2633"></span></p>
<p>1. สร้างไฟล์ &#8220;<strong>MY_Controller.php</strong>&#8221; ไว้ใน โฟล์เดอร์ &#8220;<span style="color: #cc99ff;">application/core/</span>&#8221; หลังจากนั้นให้นำโค๊ดด้านล่างไปวางไว้ในไฟล์</p><pre class="crayon-plain-tag">&lt;?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class MY_Controller extends CI_Controller 
 { 
   //set the class variable.
   var $template  = array();
   var $data      = array();
   //Load layout    
   public function layout() {
     // making temlate and send data to view.
     $this-&gt;template['header']   = $this-&gt;load-&gt;view('layout/header', $this-&gt;data, true);
     $this-&gt;template['left']   = $this-&gt;load-&gt;view('layout/left', $this-&gt;data, true);
     $this-&gt;template['middle'] = $this-&gt;load-&gt;view($this-&gt;middle, $this-&gt;data, true);
     $this-&gt;template['footer'] = $this-&gt;load-&gt;view('layout/footer', $this-&gt;data, true);
     $this-&gt;load-&gt;view('layout/index', $this-&gt;template);
   }
}</pre><p>2. สร้างโฟล์เดอร์ไว้ใน &#8220;<span style="color: #cc99ff;">application/view/</span>&#8221; โดยตั้งชื่อว่า &#8220;<strong>layout</strong>&#8221;</p>
<p>หลังจากนั้นให้สร้างไฟล์ดังต่อไปนี้ไว้ในโฟล์เดอร์ &#8220;layout&#8221;</p>
<p><strong>header.php</strong>  นำโค๊ดด้านล่างไปวางไว้ในไฟล์นี้</p><pre class="crayon-plain-tag">&lt;div style="height:200px; width:100%; border:2px solid #000;"&gt;  Header Area&lt;/div&gt;</pre><p><strong>left.php</strong>  นำโค๊ดด้านล่างไปวางไว้ในไฟล์นี้</p><pre class="crayon-plain-tag">&lt;div style="height:500px; width:200px; border:2px solid #000; float:left;"&gt;  Left Area&lt;/div&gt;</pre><p><strong>footer.php</strong> นำโค๊ดด้านล่างไปวางไว้ในไฟล์นี้</p><pre class="crayon-plain-tag">&lt;div style="clear:both;"&gt;&lt;/div&gt;
&lt;div style="height:200px; width:100%; border:2px solid #000;"&gt;  Footer Area&lt;/div&gt;</pre><p><strong>index.php</strong> นำโค๊ดด้านล่างไปวางไว้ในไฟล์นี้</p><pre class="crayon-plain-tag">&lt;!DOCTYPE html&gt;
&lt;html class="no-js"&gt;
&lt;head&gt;
&lt;!-- my script and syles goes here --&gt;
&lt;/head&gt;
&lt;body&gt;
 &lt;?php if($header) echo $header ;?&gt;
 &lt;?php if($left) echo $left ;?&gt;
 &lt;?php if($middle) echo $middle ;?&gt;
 &lt;?php if($footer) echo $footer ;?&gt;
&lt;/body&gt;
&lt;/html&gt;</pre><p>ทีนี้เราจะได้ส่วนประกอบที่เป็น layout ของ<span style="text-decoration: underline;"> template</span> แล้วละครับ ที่เหลือก็เรียกใช้งาน</p>
<p>3. สร้างไฟล์ <strong>home.php</strong> ไว้ที่ โฟล์เดอร์ &#8220;<span style="color: #cc99ff;">application/views/</span>&#8221; แล้วนำโค๊ดด้านล่างนี้ไปวางไว้ในไฟล์</p><pre class="crayon-plain-tag">&lt;div style="height:500px; width:70%; border:2px solid #000; float:left;"&gt; Middle Area&lt;/div&gt;</pre><p>4. สร้างไฟล์ <strong>Welcome.php</strong> ไว้ที โฟล์เดอร์ &#8220;<span style="color: #cc99ff;">application/controllers/</span>&#8221;  แล้วนำโค๊ดด้านล่างนี้ไปวางไว้ในไฟล์</p><pre class="crayon-plain-tag">&lt;?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Welcome extends MY_Controller {
  public function index() {
    $this-&gt;middle = 'home'; // passing middle to function. change this for different views.
    $this-&gt;layout();
  }
}</pre><p><em><span style="text-decoration: underline;">หมายเหตุ</span> </em>: Class ของไฟล์นี้สืบทอดจาก MY_Controller ที่เราสร้างไว้นั้นเองโดยทำการเรียกใช้งาน layout หรือ template มาใช้งานและ หน้าที่ของ Class ไฟล์นี้จะทำการส่งค่า (เนื้อหาส่วนกลาง) ไปให้กับ Layout นั้นเอง ตัวอย่างไฟล์นี้คือ middle ทำการส่งค่า home ไปให้ แล้ว Layout จะทำการเรียกไฟล์ home.php มานั้นเอง</p>
<p>เรียบร้อยแล้วครับ พอเรารันเว็บมา เช่น <strong>http://localhost/project/index.php/</strong>welcome เราจะได้หน้าตาเว็บแบบรูปภาพด้านล่างนี้</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-2637" src="https://www.itoffside.com/wp-content/uploads/2016/09/codeigniter-template.png" alt="codeigniter-template" width="628" height="552" srcset="https://www.itoffside.com/wp-content/uploads/2016/09/codeigniter-template.png 628w, https://www.itoffside.com/wp-content/uploads/2016/09/codeigniter-template-300x264.png 300w" sizes="auto, (max-width: 628px) 100vw, 628px" /></p>
<p>สามารถอ่านเพิ่มเติมที่ <a href="http://tutsnare.com/creating-a-layout-in-codeigniter/">http://tutsnare.com/creating-a-layout-in-codeigniter/</a></p><p>The post <a href="https://www.itoffside.com/create-layout-template-in-codeigniter/">การสร้าง Layout หรือ Template ใน Codeigniter</a> first appeared on <a href="https://www.itoffside.com">itOffside.com | บทความการเขียนโปรแกรม เรื่องราวข้อมูลเทคโนโลยี</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://www.itoffside.com/create-layout-template-in-codeigniter/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Pagination แบ่งหน้าการแสดงผลด้วย Codeigniter (PHP Mysql)</title>
		<link>https://www.itoffside.com/pagination-codeigniter-php-mysql/</link>
					<comments>https://www.itoffside.com/pagination-codeigniter-php-mysql/#respond</comments>
		
		<dc:creator><![CDATA[Onmobile]]></dc:creator>
		<pubDate>Wed, 03 Feb 2016 17:30:31 +0000</pubDate>
				<category><![CDATA[Codeigniter]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[codeigniter]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[pagination]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[php5]]></category>
		<guid isPermaLink="false">https://www.itoffside.com/?p=2541</guid>

					<description><![CDATA[<p>บทความนี้เป็นการสอนการแบ่งหน้า(Pagination) โดยใช้ Library ของ Codeigniter ซึ่งการแบ่งหน้าเป็นสิ่งหนึ่งที่จำเป็นต้องมีในเว็บแอพลิเคชั่น ซึ่งก็แล้วแต่เทคนิคและลักษณะกันไป ประโยชน์ของการแบ่งหน้าช่วยให้หน้าเว็บไซต์ของเราไม่ยืดยาวและโหลดเร็วขึ้น แน่นอนว่าสำหรับบทความนี้ จะสอนแบบอธิบายให้เข้าใจง่ายๆ นะครั...</p>
<p>The post <a href="https://www.itoffside.com/pagination-codeigniter-php-mysql/">Pagination แบ่งหน้าการแสดงผลด้วย Codeigniter (PHP Mysql)</a> first appeared on <a href="https://www.itoffside.com">itOffside.com | บทความการเขียนโปรแกรม เรื่องราวข้อมูลเทคโนโลยี</a>.</p>]]></description>
										<content:encoded><![CDATA[<p>บทความนี้เป็นการสอนการแบ่งหน้า(<span style="color: #ff00ff;"><strong><span style="text-decoration: underline;">Pagination</span></strong></span>) โดยใช้ Library ของ <span style="color: #ff00ff;"><strong>Codeigniter</strong> </span>ซึ่งการแบ่งหน้าเป็นสิ่งหนึ่งที่จำเป็นต้องมีในเว็บแอพลิเคชั่น ซึ่งก็แล้วแต่เทคนิคและลักษณะกันไป ประโยชน์ของการแบ่งหน้าช่วยให้หน้าเว็บไซต์ของเราไม่ยืดยาวและโหลดเร็วขึ้น แน่นอนว่าสำหรับบทความนี้ จะสอนแบบอธิบายให้เข้าใจง่ายๆ นะครับ มาเริ่มกันเลยครับ<span id="more-2541"></span></p>
<p><strong><span style="color: #ff99cc;"><em>เตรียมความพร้อม!</em></span></strong><br />
1. PHP เวอร์ชั่น 5.6<br />
2. MySQL เวอร์ชั่น  5.6<br />
3. Tool PHP MyAdmin<br />
4. Codeigniter Framework เวอร์ชั่น 3.0.4<br />
5. Editor ในตัวอย่างบทความนี้ผมใช้ Atom 1.0 นะครับ</p>
<p><span style="color: #ff99cc;"><em><strong>วิธีการ/ขั้นตอน</strong></em></span></p>
<h2>Import SQL</h2>
<p>Import ตารางข้อมูล Product ก่อน Code SQL ด้านล่างนี้ครับ</p><pre class="crayon-plain-tag">--
-- Table structure for table `products`
--

CREATE TABLE IF NOT EXISTS `products` (
  `id` int(11) NOT NULL,
  `name` varchar(100) COLLATE utf8_unicode_ci NOT NULL,
  `price` decimal(8,2) NOT NULL,
  `status` tinyint(1) NOT NULL DEFAULT '1'
) ENGINE=InnoDB AUTO_INCREMENT=24 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

--
-- Dumping data for table `products`
--

INSERT INTO `products` (`id`, `name`, `price`, `status`) VALUES
(1, 'iPhone 6 Plus', '25000.00', 1),
(2, 'iPhone 6', '22000.00', 1),
(3, 'True SMART 4.0', '5000.00', 1),
(4, 'Samsung Galaxy ALPHA', '12000.00', 1),
(5, 'Samsung Galaxy Note', '23000.00', 1),
(6, 'iPhone 5S', '20000.00', 1),
(7, 'Samsung Galaxy S5', '20000.00', 1),
(8, 'Galaxy K Zoom 3G', '21000.00', 1),
(9, 'OPPO Joy Plus', '4500.00', 1),
(10, 'Galaxy S DUOS 2', '3900.00', 1),
(11, 'OPPO Joy Plus', '3490.00', 1),
(12, 'Huawei Alek 4G', '5460.00', 1),
(13, 'Huawei P8 Lite', '7900.00', 1),
(14, 'OPPO N1 Mini', '9900.00', 1),
(15, 'Samsung Galaxy E7', '11500.00', 1),
(16, 'LG G4', '22900.00', 1),
(17, 'i-Mobile IQ X Lucus', '5900.00', 1),
(18, 'i-mobile I-Style 8.3', '4990.00', 1),
(19, 'I-Mobile I-Style 210', '2490.00', 1),
(20, 'i-mobile IQ 5.7', '4490.00', 1),
(21, 'Galaxy Win 4.7', '7900.00', 1),
(22, 'Galaxy Note 3 LTE', '19900.00', 1),
(23, 'Nokia Lumia 630', '4990.00', 1);

--
-- Indexes for dumped tables
--

--
-- Indexes for table `products`
--
ALTER TABLE `products`
  ADD PRIMARY KEY (`id`);

--
-- AUTO_INCREMENT for dumped tables
--

--
-- AUTO_INCREMENT for table `products`
--
ALTER TABLE `products`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=24;</pre><p></p>
<h2>Model</h2>
<p>เริ่มเขียน Code ในส่วนของ Model ตามตัวอย่างนี้ผมสร้างไฟล์ชื่อ <strong>Product_model.php</strong> ไว้ใน<span style="color: #ff00ff;"> [ชื่อโปรเจค]\Application\models\Product_model.php</span> ตามรูปภาพด้านล่าง<br />
<img loading="lazy" decoding="async" class="alignnone size-full wp-image-2561" src="https://www.itoffside.com/wp-content/uploads/2016/02/pagination-01.jpg" alt="pagination-01" width="291" height="680" srcset="https://www.itoffside.com/wp-content/uploads/2016/02/pagination-01.jpg 291w, https://www.itoffside.com/wp-content/uploads/2016/02/pagination-01-128x300.jpg 128w" sizes="auto, (max-width: 291px) 100vw, 291px" /><br />
สร้างไฟล์จากนั้นนำ code ไปใส่ในไฟล์นี้ครับ</p><pre class="crayon-plain-tag">&lt;?php
class Product_model extends CI_Model{
  public function __construct(){
    parent::__construct();
  }

  public function record_count(){
    return $this-&gt;db-&gt;count_all("products");
  }

  public function fetch_product($limit, $start) {
        $this-&gt;db-&gt;limit($limit, $start);
        $query = $this-&gt;db-&gt;get("products");

        if ($query-&gt;num_rows() &gt; 0) {
            foreach ($query-&gt;result() as $row) {
                $data[] = $row;
            }
            return $data;
        }
        return false;
   }
}</pre><p>จากตัวอย่าง code ด้านบนเป็นการใช้งาน <span style="text-decoration: underline;">Active Record</span> เพื่อค้นหาจำนวนแถวทั้งหมด และดึงข้อมูลจากตาราง products</p>
<p>เมธอด record_count() ทำหน้าที่ return ค่า จำนวนแถวทั้งหมดกลับไปยัง Controller เพื่อนำไปใช้กับ $config[&#8216;total_rows&#8217;] ซึ่งเป็น Library pagination<br />
เมธอด fetch_product() ทำหน้าที่ดึงข้อมูลทั้งหมดจากตาราง products โดยมี arguments รับค่า 2 ค่าเข้าไปซึ่งเป็น $limit และ $start ถูกส่งโดย controller อีกที</p>
<h2>Controller</h2>
<p>เริ่มเขียน Controller ให้สร้างไฟล์ <strong>Product.php</strong> ไว้ใน <span style="color: #ff00ff;">[ชื่อโปรเจค]\Application\controllers\Product.php</span> ตามรูปภาพด้านล่าง<br />
<img loading="lazy" decoding="async" class="alignnone size-full wp-image-2564" src="https://www.itoffside.com/wp-content/uploads/2016/02/pagination-02.jpg" alt="pagination-02" width="259" height="382" srcset="https://www.itoffside.com/wp-content/uploads/2016/02/pagination-02.jpg 259w, https://www.itoffside.com/wp-content/uploads/2016/02/pagination-02-203x300.jpg 203w" sizes="auto, (max-width: 259px) 100vw, 259px" /><br />
สร้างไฟล์เสร็จแล้ว ให้นำ code ด้านล่างไปใส่</p><pre class="crayon-plain-tag">&lt;?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Product extends CI_Controller{
  public function __construct(){
    parent::__construct();
    $this-&gt;load-&gt;model("Product_model");
    $this-&gt;load-&gt;library("pagination");
  }
  public function index(){
    $config = array();
        $config["base_url"] = base_url() . "product/index";
        $config["total_rows"] = $this-&gt;Product_model-&gt;record_count();
        $config["per_page"] = 10;
        $config["uri_segment"] = 3;

        $this-&gt;pagination-&gt;initialize($config);

        $page = ($this-&gt;uri-&gt;segment(3)) ? $this-&gt;uri-&gt;segment(3) : 0;
        $data["results"] = $this-&gt;Product_model-&gt;
            fetch_product($config["per_page"], $page);
        $data["links"] = $this-&gt;pagination-&gt;create_links();

        $this-&gt;load-&gt;view("product", $data);
  }
}</pre><p>เริ่มต้น code ในส่วนของ construct() ผมให้ทำการโหลด model ที่ทำการเขียนขึ้นมาเมื่อสักครู่กับโหลด <strong>library pagination</strong> ขึ้นมาใช้งาน (สามารถตั้งเป็น auto load ได้แต่ต้องไปตั้งค่าที่ config แทน)<br />
เมธอด index() ในส่วน code ทำการตั้งค่าในตัวแปร $config โดยนำข้อมูลจาก code model บางส่วน<br />
$config[&#8220;total_rows&#8221;] หมายถึง จำนวนข้อมูลทั้งหมด<br />
$config[&#8220;per_page&#8221;] หมายถึงจำนวนข้อมูลแถวต่อ 1 หน้าที่ให้แสดงผล<br />
$config[&#8220;uri_segment&#8221;] หมายถึง ตั้งค่าให้ตัวเลขหน้าอยู่ตำแหน่งพารามิเตอร์ไหนของ URL</p>
<p>และสุดท้ายหลังจากนั้นให้เราใช้งานเมธอด <strong>create_links()</strong> ใน View ซึ่งคำสั่งนี้จะทำการแสดงผล <span style="text-decoration: underline;">pagination</span></p>
<h2>View</h2>
<p>สำหรับ view ให้เราทำการสร้างไฟล์ <strong>product.php</strong> ไว้ใน <span style="color: #ff00ff;">[ชื่อโปรเจค]\Application\views\product.php</span> ตามรูปภาพด้านล่าง<br />
<img loading="lazy" decoding="async" class="alignnone size-full wp-image-2565" src="https://www.itoffside.com/wp-content/uploads/2016/02/pagination-03.jpg" alt="pagination-03" width="260" height="350" srcset="https://www.itoffside.com/wp-content/uploads/2016/02/pagination-03.jpg 260w, https://www.itoffside.com/wp-content/uploads/2016/02/pagination-03-223x300.jpg 223w" sizes="auto, (max-width: 260px) 100vw, 260px" /><br />
สร้างไฟล์แล้วให้นำ code ด้านล่างใส่</p><pre class="crayon-plain-tag">&lt;!DOCTYPE html&gt;
&lt;html&gt;
    &lt;head&gt;
        &lt;meta charset="UTF-8"&gt;
        &lt;title&gt;itOffside.com CodeIgniter Pagination&lt;/title&gt;
        &lt;style type="text/css"&gt;

a {
	color: #003399;
	background-color: transparent;
	font-weight: normal;
  margin: 3px;
  border: 1px solid #000000;
  padding: 2px;
}

h1 {
	color: #444;
	background-color: transparent;
	border-bottom: 1px solid #D0D0D0;
	font-size: 19px;
	font-weight: normal;
	margin: 0 0 14px 0;
	padding: 14px 15px 10px 15px;
}

#container {
	margin: 10px;
	border: 1px solid #D0D0D0;
	box-shadow: 0 0 8px #D0D0D0;
  padding: 5px;
}

p {
	margin: 12px 15px 12px 15px;
}
&lt;/style&gt;
    &lt;/head&gt;
    &lt;body style="margin-top: 10px;"&gt;
      &lt;div id="container"&gt;
        &lt;h1&gt;Product&lt;/h1&gt;
        &lt;div id="body"&gt;
      &lt;?php
      foreach($results as $data) {
          echo "{" . $data-&gt;id . "}" . $data-&gt;name . " - " . $data-&gt;price . "&lt;br&gt;";
      }
      ?&gt;
         &lt;p&gt;&lt;?php echo $links; ?&gt;&lt;/p&gt;
        &lt;/div&gt;
        &lt;p class="footer"&gt;Page rendered in &lt;strong&gt;{elapsed_time}&lt;/strong&gt; seconds&lt;/p&gt;
       &lt;/div&gt;
    &lt;/body&gt;
&lt;/html&gt;</pre><p></p>
<h2>Result</h2>
<p>ดูผลลัพธ์ เมื่อเข้ามาที่ลิงค์ http:\\localhost\pagination\product\index<br />
<img loading="lazy" decoding="async" class="alignnone size-full wp-image-2566" src="https://www.itoffside.com/wp-content/uploads/2016/02/pagination-04.jpg" alt="pagination-04" width="798" height="670" srcset="https://www.itoffside.com/wp-content/uploads/2016/02/pagination-04.jpg 798w, https://www.itoffside.com/wp-content/uploads/2016/02/pagination-04-300x252.jpg 300w, https://www.itoffside.com/wp-content/uploads/2016/02/pagination-04-768x645.jpg 768w" sizes="auto, (max-width: 798px) 100vw, 798px" /></p>
<h2>สรุป</h2>
<p>บทความนี้ทำให้เราสามารถทำการแบ่งหน้าได้โดยใช้ Library ของ Codeigniter แบบพื้นฐาน ซึ่งถ้าเราต้องการตั้งค่ามากกว่านี้ เช่น ต้องการกำหนด class css /tag html / ซ่อนลิงค์กรณีที่ข้อมูลมีหน้าเดียว เป็นต้น ให้เราเข้าไปอ่านได้ที่ Document ของเว็บหลักได้ <a href="http://www.codeigniter.com/user_guide/libraries/pagination.html" target="_blank">Pagination Codeigniter</a></p>
<p>สำหรับบทความนี้หากมีใครสงสัยหรือติดปัญหา comment ไว้ด้านล่างครับ.</p><p>The post <a href="https://www.itoffside.com/pagination-codeigniter-php-mysql/">Pagination แบ่งหน้าการแสดงผลด้วย Codeigniter (PHP Mysql)</a> first appeared on <a href="https://www.itoffside.com">itOffside.com | บทความการเขียนโปรแกรม เรื่องราวข้อมูลเทคโนโลยี</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://www.itoffside.com/pagination-codeigniter-php-mysql/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>แจกระบบจัดการเอกสารออนไลน์ โดยใช้ Codeigniter Framework [PHP+MySQL]</title>
		<link>https://www.itoffside.com/sourcecode-edocument-online-codeigniter-php-mysql/</link>
					<comments>https://www.itoffside.com/sourcecode-edocument-online-codeigniter-php-mysql/#comments</comments>
		
		<dc:creator><![CDATA[Onmobile]]></dc:creator>
		<pubDate>Fri, 02 Oct 2015 17:37:00 +0000</pubDate>
				<category><![CDATA[Codeigniter]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[codeigniter]]></category>
		<category><![CDATA[e-document]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[php5]]></category>
		<guid isPermaLink="false">https://www.itoffside.com/?p=2518</guid>

					<description><![CDATA[<p>ระบบเอกสาร ที่ผมได้เขียนขึ้นมานั้น ผมได้ใช้ php framework ของ Codeigniter 3 ในการเขียนขึ้นมา ซึ่งผมเพิ่งเริ่มเขียน Codeigniter framework มาได้ไม่นาน ซึ่งเดิมทีผมตั้งใจจะเริ่มต้นกับ Laravel framework แต่ก็ตัดสินใจเลือก Codeigniter ก่อน เนื่องจากมีหลายๆความคิดเห็นบนอินเตอร์เน็ตว่า Codeigniter เขียนง่า...</p>
<p>The post <a href="https://www.itoffside.com/sourcecode-edocument-online-codeigniter-php-mysql/">แจกระบบจัดการเอกสารออนไลน์ โดยใช้ Codeigniter Framework [PHP+MySQL]</a> first appeared on <a href="https://www.itoffside.com">itOffside.com | บทความการเขียนโปรแกรม เรื่องราวข้อมูลเทคโนโลยี</a>.</p>]]></description>
										<content:encoded><![CDATA[<p>ระบบเอกสาร ที่ผมได้เขียนขึ้นมานั้น ผมได้ใช้ php framework ของ Codeigniter 3 ในการเขียนขึ้นมา ซึ่งผมเพิ่งเริ่มเขียน Codeigniter framework มาได้ไม่นาน ซึ่งเดิมทีผมตั้งใจจะเริ่มต้นกับ Laravel framework แต่ก็ตัดสินใจเลือก Codeigniter ก่อน เนื่องจากมีหลายๆความคิดเห็นบนอินเตอร์เน็ตว่า Codeigniter เขียนง่าย สำหรับระบบเอกสารที่ผมเอามาแจกนั้นเป็นระบบง่ายๆ ไม่ซับซ้อนมากนักเหมาะสำหรับคนที่เพิ่มเริ่มหัดเขียน Codeigniter นำไปศึกษา โดยผมตั้งใจไว้ว่า พยายามเผยแพร่ Source code ที่คนอ่านแล้วเข้าใจไม่ยาก และระบบเอกสารผมได้นำ AdminLTE2 มาเป็นหน้าตาเว็บไซต์ซึ่งเพิ่งเริ่มใช้เวอร์ชั่นนี้เหมือนกันครับ และสุดท้ายสุดถ้าใครเกิดปัญหาตรงไหน สอบถามได้ทาง Comment ด้านล่างนี้นะครับ<span id="more-2518"></span></p>
<p>สำหรับ ระบบเอกสาร ผมได้ออกแบบฐานข้อมูลโดยมี ทั้งหมด 3 ตาราง คือ users, categories, document โดย users เก็บข้อมูลผู้ใช้, categories เก็บข้อมูลหมวดหมู่เอกสาร, document เก็บเอกสาร<br />
ความสามารถของระบบเอกสาร ecdocument มีดังนี้<br />
1. สามารเพิ่ม แก้ไข และลบ ข้อมูลหมวดหมู่เอกสาร, เอกสาร ได้<br />
2. ไฟล์เอกสารที่อัพโหลดในระบบเอกสารรองรับเฉพาะ ไฟล์นามสกุล PDF เท่านั้น<br />
3. สามารถตรวจสอบการเข้าถึงการ จัดการระบบเอกสารได้</p>
<p>ซึ่งความสามารถข้างต้นที่กล่าวมานี้ ผู้ใช้งานสามารถนำไปต่อยอดได้ครับ</p>
<p>สำหรับ source code สามารถดาวน์โหลดได้ที่ลิงค์ด้านล่างครับ โดยจะมีไฟล์ *.sql อยู่ข้างในโฟล์เดอร์ด้วยครับ</p>
<p>[sociallocker]</p>
<p><a href="https://github.com/ipball/ecdocument" target="_blank" rel="noopener">Download Sourcecode</a></p>
<p>[/sociallocker]</p>
<p>************<br />
<strong>การติดตั้ง</strong><br />
************</p>
<p>1. แก้ไขไฟล์ application/config/database.php (เปลี่ยนข้อมูลฐานข้อมูล)<br />
2. แก้ไขไฟล์ application/config/config.php<br />
บรรทัดที่ 20 เปลี่ยน URL เว็บไซต์ให้ตรงกับข้อมูลของคุณเช่นเว็บ https://www.itoffside.com/ เป็นต้น<br />
3. ตั้งค่ากำหนดสิทธิ์อัพโหลดไฟล์ที่โฟล์เดอร์ session และ uploads ให้ทุกคนสามารถอัพโหลดได้ (CHMOD 777)</p>
<p>*******<br />
<strong>เงื่อนไขการใช้งาน</strong><br />
*******</p>
<p>ทุกคนมีสิทธิ์ในการแก้ไขไฟล์และใช้งานได้ พร้อมทั้งทำซ้ำแลแจกจ่ายไปยังแหล่งต่างๆได้<br />
แต่<span style="color: #ff0000;">**ห้ามนำไปจำหน่ายโดยเด็ดขาด</span></p>
<p>*********<br />
<span style="color: #0000ff;"><strong>Special Thanks</strong></span><br />
*********<br />
<span style="color: #333399;">ขอขอบคุณทุกๆท่านที่ทำให้นักพัฒนามีแรงบรรดาลใจในการพัฒนาต่อไปโดยการ บอกต่อ(Share) หรือท่านใดใจดีก็บริจาคให้กับทางผู้พัฒนาได้ทุกทาง เช่น ธนาคาร, เพลย์พาล เป็นต้น</span><br />
<span style="color: #333399;">ขอบคุณครับ</span></p>
<p>รูปภาพบางส่วนจากหน้าจอระบบ ครับ</p>
<p><img loading="lazy" decoding="async" class="size-full wp-image-2521" src="https://www.itoffside.com/wp-content/uploads/2015/10/ecdocument-01.jpg" alt="itoffside.com" width="652" height="438" srcset="https://www.itoffside.com/wp-content/uploads/2015/10/ecdocument-01.jpg 652w, https://www.itoffside.com/wp-content/uploads/2015/10/ecdocument-01-300x202.jpg 300w" sizes="auto, (max-width: 652px) 100vw, 652px" /></p>
<p><a href="https://www.itoffside.com/wp-content/uploads/2015/10/ecdocument-02.jpg"><img loading="lazy" decoding="async" class="alignnone wp-image-2522 " src="https://www.itoffside.com/wp-content/uploads/2015/10/ecdocument-02-1024x452.jpg" alt="ecdocument-02" width="836" height="369" srcset="https://www.itoffside.com/wp-content/uploads/2015/10/ecdocument-02-1024x452.jpg 1024w, https://www.itoffside.com/wp-content/uploads/2015/10/ecdocument-02-300x132.jpg 300w, https://www.itoffside.com/wp-content/uploads/2015/10/ecdocument-02.jpg 1645w" sizes="auto, (max-width: 836px) 100vw, 836px" /></a></p>
<p><a href="https://www.itoffside.com/wp-content/uploads/2015/10/ecdocument-03.jpg"><img loading="lazy" decoding="async" class="alignnone wp-image-2523" src="https://www.itoffside.com/wp-content/uploads/2015/10/ecdocument-03-1024x593.jpg" alt="ecdocument-03" width="836" height="484" srcset="https://www.itoffside.com/wp-content/uploads/2015/10/ecdocument-03-1024x593.jpg 1024w, https://www.itoffside.com/wp-content/uploads/2015/10/ecdocument-03-300x174.jpg 300w, https://www.itoffside.com/wp-content/uploads/2015/10/ecdocument-03.jpg 1645w" sizes="auto, (max-width: 836px) 100vw, 836px" /></a></p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-2524" src="https://www.itoffside.com/wp-content/uploads/2015/10/ecdocument-04.jpg" alt="ecdocument-04" width="516" height="442" srcset="https://www.itoffside.com/wp-content/uploads/2015/10/ecdocument-04.jpg 516w, https://www.itoffside.com/wp-content/uploads/2015/10/ecdocument-04-300x257.jpg 300w" sizes="auto, (max-width: 516px) 100vw, 516px" /></p>
<p><a href="https://www.itoffside.com/wp-content/uploads/2015/10/ecdocument-05.jpg"><img loading="lazy" decoding="async" class="alignnone wp-image-2525" src="https://www.itoffside.com/wp-content/uploads/2015/10/ecdocument-05-1024x396.jpg" alt="ecdocument-05" width="822" height="318" srcset="https://www.itoffside.com/wp-content/uploads/2015/10/ecdocument-05-1024x396.jpg 1024w, https://www.itoffside.com/wp-content/uploads/2015/10/ecdocument-05-300x116.jpg 300w, https://www.itoffside.com/wp-content/uploads/2015/10/ecdocument-05.jpg 1237w" sizes="auto, (max-width: 822px) 100vw, 822px" /></a></p><p>The post <a href="https://www.itoffside.com/sourcecode-edocument-online-codeigniter-php-mysql/">แจกระบบจัดการเอกสารออนไลน์ โดยใช้ Codeigniter Framework [PHP+MySQL]</a> first appeared on <a href="https://www.itoffside.com">itOffside.com | บทความการเขียนโปรแกรม เรื่องราวข้อมูลเทคโนโลยี</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://www.itoffside.com/sourcecode-edocument-online-codeigniter-php-mysql/feed/</wfw:commentRss>
			<slash:comments>189</slash:comments>
		
		
			</item>
	</channel>
</rss>
