Showing posts with label CODEIGNITER framework. Show all posts
Showing posts with label CODEIGNITER framework. Show all posts
 
Optimasi loading web dengan combine+minify file css dan js (codeigniter)

[Codeigniter] Optimasi loading web dengan minify library - Pada pembahasan sebelumnya saya telah membahas bagaimana cara optimasi load image, nah pada pembahasan kali ini saya akan membahas bagaimana cara optimasi loading web dengan cara menggabungkan + meminimalkan file css dan js kita. Jadi cara ini akan menggabungkan semua file css anda menjadi satu file css dan file js menjadi satu file, lalu habis file css di gabung barulah file css dan js itu di minimalkan sehingga file akan menjadi sangat kecil dan web akan sangat cepat pada saat akan meload style dan js-nya.

Cara ini aku dapat dari teman facebook ku, om Tirta Keniten :) , waktu itu dia nyaranin 1 library php bernama minify. Library ini mempunyai kemampuan menggabungkan+meminimalkan file css dan js.

Kelebihan dari library ini seperti yang sudah di jelaskan sebelumnya, yaitu dapat mempercepat load web anda dengan cara menggabungkan+meminimalkan file css dan js anda.

Berikut andalah screen shot file yang sudah di combine+minify :


Styles.min.css merupakan hasil dari gabungan semua file css yang ada di folder css dan script.min.js merupakan hasil dari gabungan semua file yang ada di folder js. Pada gambar di atas saya menggabungkan 2 file css dan 2 file js. Berikut adalah gambar file js dan css sebelum di combine+minify.




Mungkin tanpa banyak basabasi mari kita lanjut ke praktiknya saja. Pada pembahasan kali ini saya akan menerapkan library minify ini pada codeigniter.

Spesifikasi sourcecode yang ku pakai :
Pada library yang di buat oleh om slawomir sudah terdapat libralies + contoh penggunaannya, anda tinggal lihat-lihat saja.

Sedikit penjelasan, abaikan file controllernya. Anda lihat file view bagian kode :

<?php
 $this->minify->css(array('browser-specific.css', 'style.css'));
 echo $this->minify->deploy_css();
 $this->minify->js(array('helpers.js', 'jqModal.js'));
 echo $this->minify->deploy_js(FALSE, 'custom_js_name.min.js');
?>

Library akan membaca file css pada direktori assets/css, dan akan membaca file js pada assets/js. jadi jika pada saat anda menggunakan library ini direktori asset anda harus seperti ini :


Semua js di letakan di assets/js dan semua file css di letakan di assets/css.

Default-nya nama output yang di hasilkan dari library ini adalah script.min.js atau script.min.css. Tetapi anda juga dapat memodifikasi nama file output yang nanti akan di hasilkan dengan cara :

//untuk css
echo $this->minify->deploy_css(FALSE, 'custom_css_name.min.js');

//untuk js
echo $this->minify->deploy_js(FALSE, 'custom_js_name.min.js');
?>

Mudahkan :) , jika bingung komen saja yah :)
Mungkin saya cukupkan sekian untuk pembahasan kali ini, Terimakasih :)

Referensi : http://www.kang-cahya.com/2015/12/optimasi-loading-web-dengan-combine-minify-file-css-dan-js.html
Continue Reading...
 
Dear all coder seantero jagad raya. Kemarin Kang Cahya sudah membahas mengenai Grocery Crud, yaitu sebuah pugins codeigniter untuk menampilkan data dari database, lengkap dengan proses CRUD-nya. Grocery Crud ini sangat powerfull dan cukup membantu untuk membuat sebuah aplikasi CRUD dengan cepat. Pada form insert/update juga sudah dilakukan rules dan validasi secara otomatis (sesuai rules yang ditetapkan dari database).

Pada tulisan singkat kali ini, saya akan membahas tentang callback pada Grocery Crud dan kasus-kasus umum yang bakal terjadi dalam dunia programming.  Ada beberapa tipe callback pada Grocery Crud, antara lain :

  • Callback Colum
  • Callback Delete
  • Callback After (delete, insert, update, upload)
  • Callback Before (delete, insert, update, upload)
  • Callback add field
  • Callback edit field
  • Callback Insert / Callback Update / Callback Delete

Fungsi callback ini berfungsi untuk melakukan escaping terhadap suatu proses operasi dan memasukkan logika sebelum meneruskan ke proses akhir. Grocery Crud membentuk form input data secara otomatis, jika kita hanya memiliki data sederhana, maka tidak ada masalah untuk menggunakan form yang dibentuk oleh Grocery Crud. Namun jika kita membutuhkan modifikasi terhadap data yang akan dimasukkan ke database, maka akan timbul kesulitan baru.
Marilah kita bahas case berikut ini…...
Terdapat sebuah form untuk mengisikan data dari tabel users. Berikut adalah struktur table pada users:
ColumnTypeLength
idint11
group_idint11
usernameVarchar100
passwordVarchar150
emailvarchar100
first_namevarchar50
last_namevarchar50
created_atDate
updated_atDate

Dan di bawah ini adalah struktur table pada tabel usergroup:
ColumnTypeLength
idint11
group_namevarchar20
descriptionVarchar200

Column id adalah colum type int, merupakan Primary Key dari tabel tersebut. Set autoincrement dari column id ini dengan nilai true.

Sekarang kita masuk ke bagian peng-coding-an. Pada tutorial ini sudah saya sertakan sebuah aplikasi yang dilengkapi dengan Grocery Crud + Code Igniter + SB Admin template. Jadi kita hanya focus di coding nya saja.

Tambahkan fungsi berikut pada controller latihan:

public function user_management(){
 try{
  $crud = new grocery_CRUD();
  $crud->set_theme('flexigrid');
  $crud->set_table('users');
  $crud->set_subject('Users');
  
  $data['judul'] = 'Manajemen User';
  $data['output'] = $crud->render();
  $this->load->view('main_view', $data);
 }catch(Exception $e){
  show_error($e->getMessage().' --- '.$e->getTraceAsString());
 }
}

Jika sudah selesai menambahkan coding di atas, jalankanlah aplikasi di web browser. Kalau di tempat saya, link untuk menjalankan aplikasi tersebut adalah:

http://localhost:8080/codeignitergrocerycrud/index.php/latihan/user_management

Kemungkinan link akan berbeda, sesuai dengan konfigurasi port server di server apache yang terinstall di computer. Jika berhasil, maka akan muncul seperti gambar di bawah ini:

Grocery Crud Callback Tutorial


Jika di klik tombol Add User, maka akan muncul form input data seperti gambar di bawah:



Sebenarnya pada tahapan ini, Grocery Crud sudah dapat bekerja dan dapat memasukkan data ke dalam tabel. Tetapi ada beberapa hal yang membutuhkan kustomisasi agar aplikasi dapat berjalan dengan bagus. Pada form tersebut, lihatlah input Group id yang berupa textbox. Kenyataannya yang kita inginkan adalah Group id berupa select combobox, yang dipopulasikan dari sebuah table lain. Untuk itu kita harus melakukan relasi dari tabel users ke tabel usergroup.

Untuk melakukan relation dari tabel users ke tabel usergroup, tambahkanlah script berikut pada fungsi user_management, posisi script tidak boleh setelah baris render dari Grocery Crud, harus sebelumnya.

$crud->set_relation('group_id','usergroup','group_name');

Kemudian jalankan lagi atau refresh halaman web pada browser. Maka field group_id akan berubah dari textbox menjadi select combobox. Lihat pada gambar di bawah.



Masalah selanjutnya adalah username, sebuah aplikasi yang baik, harus mampu melakukan check data apakah data yang diinput sudah ada di database atau tidak. Untuk itu kita harus melakukan callback terhadap field username. Mengintip database, apakah input yang di post mempunyai value yang sama atau tidak terhadap data yang sudah ada. Jika data sudah ada, maka kita cegah proses penyimpanan data dan melempar pesan error kepada user.

Untuk mewujudkan hal tersebut, maka kita buat dulu sebuah fungsi untuk melakukan pengecekan ke database. Misal nama fungsinya adalah: cek_user_before_user_save,

function cek_user_before_user_save($post_array){
 $i = $this->db->where('username', $post_array['username'])->get('users')->num_rows();
 if($i == 0 ){
  return true;
 }else{
  return false;
 }
}

$post_array yang di passing ke dalam fungsi itu adalah post data pada form input user yang di generate oleh Grocery Crud. Untuk mengaksesnya sama dengan mengakses data array pada php. Misalkan nama field kita adalah field username, maka untuk mendapatkan nilai username yang di post oleh form adalah sebagai berikut: $post_ array['username']

Bagaimana memanggil fungsi ini? Untuk memanggil fungsi ini, maka kita harus melakukan callback sebelum data diinpute ke database. Pada kasus ini kita gunakan callback before insert yang telah disediakan oleh Grocery Crud.

Script umum dari callback before insert adalah:

$crud->callback_before_insert(array($this,’nama fungsi callback nya….’));

Untuk lebih lengkapnya, fungsi user_management setelah ditambahkan perintah callback dan custom error message adalah sebagai berikut:

public function user_management(){
 try{
  $crud = new grocery_CRUD();
  $crud->set_lang_string('insert_error','Username sudah ada di database');
  $crud->set_theme('flexigrid');
  $crud->set_table('users');
  $crud->set_subject('Users');
  $crud->set_relation('group_id','usergroup','group_name');
  $crud->callback_before_insert(array($this,'cek_user_before_user_save'));
  
  $data['judul'] = 'Manajemen User';
  $data['output'] = $crud->render();
  $this->load->view('main_view', $data);
 }catch(Exception $e){
  show_error($e->getMessage().' --- '.$e->getTraceAsString());
 }
}

Perhatikan script tersebut, ada penambahan perintah set_lang_string dan callback_before_insert. Perintah set_lang_string adalah perintah untuk mengubah isi pesan pada saat state tertentu terjadi. Dalam hal ini yang kita ingin ubah isi pesannya adalah pada saat state insert_error (ada berbagai macam state pada Grocery Crud, bukan hanya insert_error saja). Sekarang coba refresh kembali page di browser, kemudian masukkan sebuah username yang value nya identic dengan username yang ada pada database. Pada database saya, sudah ada username dengan value admin.



Pada kasus ini, berlaku juga untuk state update field username. Post data update juga harus dilakukan pengecekan, apakah sudah ada di database atau tidak. Untuk itu kita tambah satu perintah callback lagi, yaitu callback_before_update. Selengkapnya dapat anda download pada link yang telah disediakan.

Setelah username, field selanjutnya yang membutuhkan perhatian khusus adalah field password. Beberapa hal yang perlu diperhatikan untuk field password ini adalah sebagai berikut :

  • Field password disimpan terenkripsi di database
  • Password harus diuji dengan length tertentu.
  • Pada saat input data, value dari password tidak terlihat.
  • Pada saat update data, field password dibiarkan kosong, jika password diubah, maka ada post data password untuk di masukkan ke database. Jika password tidak diubah atau dibiarkan kosong, maka tidak ada post data password, dan password lama tidak diupdate.

Untuk menyelesaikan bagian nomor 1, maka kita harus edit sedikit fungsi cek_user_before_save, lihat gambar di bawah:



Ganti bagian yang saya kotakin dengan script ini :

$this->load->library('encrypt');
$key = '!@#$%^&*()_+QWERTYUIOP';
$post_array['password'] = $this->encrypt->encode($post_array['password'], $key);
return $post_array;

sehingga fungsi cek_user_before_user_save menjadi seperti gambar di bawah ini:



Fungsi tersebut akan mengembalikan post data password yang sudah di encode. Saya meminjam library encrypt dari codeigniter. Lakukan hal yang sama pada fungsi cek_user_before_user_update. Jika sudah selesai, maka pada datagrid user akan menjadi seperti gambar di bawah ini:



Permasalahan selanjutnya adalah pada saat kita melakukan edit pada user. Jika kita klik tombol edit, maka akan muncul form edit seperti berikut ini:



Perhatikan pada bagian password. Bentuk password adalah bentuk yang telah di enkripsi, jika kita klik button Update changes, maka password akan disimpan kembali dalam bentuk terenkrip dikarenakan adanya proses callback saat melakukan update.

Jadi prosesnya seperti ini:
Password awal (plain text) -> save (password sudah di encrypt) -> buka form update (password ter-encrypt ditampilkan) -> update changes (password ter-encrypt di encrypt lagi)
Jika proses ini yang terjadi, maka setiap melakukan update data user, maka password akan berubah.

Bagaimana mengantisipasi hal ini? Mudah saja, Grocery Crud menyediakan apa yang anda butuhkan dengan callback. Pada proses update data user yang mempunyai field password, maka harus melalui langkah-langkah sebagai berikut:

  • Pada saat membuka form update, biarkan field password kosong.
  • Pada saat melakukan update, gunakan callback dengan melakukan cek pada post data password, jika post data kosong, artinya column password tidak di update, maka kita lakukan unset terhadap post data password. Jika di unset, maka grocery crud tidak akan melakukan update terhadap password.

Untuk langkah 1, pada fungsi user_management, saya tambahkan baris berikut:

$crud->change_field_type('password', 'password');
$crud->callback_edit_field('password',array($this,'set_empty_password_field'));
$crud->callback_add_field('password',array($this,'set_empty_password_field'));

Kemudian tambahkan fungsi set_empty_password_field:

function set_empty_password_field(){
 return "<input name="password" type="password" value="" />";
}

Langkah 1 sudah selesai, pada tahapan ini, jika semuanya sudah benar, maka field password akan bernilai string kosong jika kita membuka form insert/update. Oya, di atas ada perintah change_field_type, ini berfungsi untuk mengubah type input dari input text biasa menjadi input password. Coba jalankan kembali aplikasi ini, maka terjadi perubahan pada grid, field password akan berganti menjadi tanda bintang. Kemudian jika kita masuk ke insert/update form, kemudian kita ketik pada field password, maka akan muncul karakter “dot” untuk menyamarkan value password.

Selanjutnya, untuk langkah ke 2, saya hanya akan menambahkan decision If untuk melakukan pengecekan apakah field password empty atau tidak. Penambahan ini saya sisipkan ke dalam fungsi callback cek_user_before_user_update.

Nah, sekarang tinggal langkah terakhir untuk menyelesaikan case user_management ini, yaitu tanggal record dibuat dan tanggal record di update. Jika kita lihat kembali pada form insert atau form update, maka ada field created_at dan updated_at. Field ini perlu kita sembunyikan agar bukan user yang mengisikan data ini. Data ini hanya akan tercatat pada saat user melakukan insert sebuah record (created_at) dan pada saat user melakukan update pada sebuah record (updated_at).

Aplikasi hanya akan menampung variable created_at hanya pada statement insert. Dan hanya dapat menampung variable updated_at hanya pada statement update. Untuk itu, kita akan tambahkan perintah berikut ini pada function user_management :

$crud->unset_add_fields('updated_at');
$crud->unset_edit_fields('created_at');
$crud->field_type('updated_at','invisible');
$crud->field_type('created_at','invisible');

Setelah selesai, fungsi user_management akan menjadi seperti ini:



Silahkan download code dari artikel ini di link berikut:


Mohon saran dan kritikannya.
Continue Reading...
 
Cara Mudah Membuat HMVC Pada Codeigniter - HMVC merupakan konsep pengembangan design dari MVC (model-view controller) yang diterapkan secara hirarkis. Keuntungan dari design ini adalah pada modularitas yang dikelompokkan berdasarkan fungsinya, atau lebih mudahnya dapat dikatakan setiap modul memiliki file control, model dan view masing-masing yang diletakkan dalam satu folder.

Cara Membuat HMVC (hirarki model view controller) Pada Codeigniter

Kenapa kita menggunakan konsep module pada sebuah framework alasannya adalah agar mempermudah dalam pembuatan file yang akan kita bangun nantinya. Jika tidak menggunakan konsep module setiap file-file tersebut kita harus tempatkan pada masing-masing folder core framework-nya seperti pada folder controllers, views dan models. Jadi bisa kita simpulkan bahwa menggunakan konsep module yaitu membangun sebuah sistem dalam sistem. Mari kita lanjut-kan pembahasannya jika masih belum mengerti.

Contoh Strukture HMVC

Cara Membuat HMVC (hirarki model view controller) Pada Codeigniter

Keterangan Gambar Di Atas:
  • nomor 1 merupakan nama folder aplikasi yang ada di htdoc.
  • nomor 2 merupakan strukture folder MVC codeigniter
  • nomor 3 merupakan strukture folder HMVC yang ada di dalam folder modules.
Bisa di lihat disana terdapat 3 buat modul (dc-dashboard, dc-log, dc-user) yang di tiap masing-masing modul itu mempunyai controllers, models dan views masing-masing. Mungkin contoh stukture HMVC ini bisa sedikit memperjelas dari penjelasan di atas :).

Spesifikasi Kode

Pada tutorial membuat HMVC ini saya akan memakai :

Jika semua file sudah di unduh, mari lanjut ke tahap selanjutnya.

Mulai Praktik

Langkah pertama, sebelum menerapkan hmvc-nya, (rename folder codeigniter yang telah di extract menjadi hmvc)  di awal kita harus cofigurasi codeigniter terlebih dahulu seperti mengatur cofig , autoload , routes, dan lainnya. Pastikan codeigniter sudah bisa di akses di browser, jalan seperti gambar di bawah ini.

Cara Membuat HMVC (hirarki model view controller) Pada Codeigniter

Langkah kedua, Extrak file extension hmvc wiredesignz yang tadi kita download, sehingga kita akan mendapat 2 folder yaitu folder core dan third_party. Lalu kemudian salin kedua folder tersebut ke folder application/ yang dimana akan tertimpa otomatis pada folder masing-masing.

Langkah ketiga, buat folder baru bernama modules di dalam folder application/ .

Cara Membuat HMVC (hirarki model view controller) Pada Codeigniter

Setelah membuat folder modules. buat lah folder baru di dalam folder modules, misalnya folder homepage dan di dalam folder homepage jangan lupa buat folder conttrollers, models, dan views.

Cara Membuat HMVC (hirarki model view controller) Pada Codeigniter

Folder homepage di atas bisa merupakan module pertama anda :) .

Langkah ke empat, Untuk membuktikan bahwa hmvc sudah berjalan dengan baik, silahkan salin kode di bawah ini.

Buat file controller baru dengan nama homepage.php, lalu simpan di application/modules/homepage/controllers/

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
 
class Homepage extends CI_Controller {
 
    public function index()
    {
        $this->load->view('homepage/view_homepage');
    }
}

Buat file view baru dengan nama view_homepage.php, lalu simpan di application/modules/homepage/views/

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>Welcome to CodeIgniter HMVC</title>
 
    <style type="text/css">
 
    ::selection{ background-color: #E13300; color: white; }
    ::moz-selection{ background-color: #E13300; color: white; }
    ::webkit-selection{ background-color: #E13300; color: white; }
 
    body {
        background-color: #fff;
        margin: 40px;
        font: 13px/20px normal Helvetica, Arial, sans-serif;
        color: #4F5155;
    }
 
    a {
        color: #003399;
        background-color: transparent;
        font-weight: normal;
    }
 
    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;
    }
 
    code {
        font-family: Consolas, Monaco, Courier New, Courier, monospace;
        font-size: 12px;
        background-color: #f9f9f9;
        border: 1px solid #D0D0D0;
        color: #002166;
        display: block;
        margin: 14px 0 14px 0;
        padding: 12px 10px 12px 10px;
    }
 
    #body{
        margin: 0 15px 0 15px;
    }
     
    p.footer{
        text-align: right;
        font-size: 11px;
        border-top: 1px solid #D0D0D0;
        line-height: 32px;
        padding: 0 10px 0 10px;
        margin: 20px 0 0 0;
    }
     
    #container{
        margin: 10px;
        border: 1px solid #D0D0D0;
        -webkit-box-shadow: 0 0 8px #D0D0D0;
    }
    </style>
</head>
<body>
 
<div id="container">
    <h1>Selamat datang di CodeIgniter HMVC Modular Extension!</h1>
 
    <div id="body">
        <p>Selamat Anda Berhasil Membuat HMVC :)</p>

        <code>application/modules/</code>
 
        <p>MVC folder dalam satu module</p>
        <code>
        application/modules/homepage  <br>
        application/modules/homepage/controllers<br>
        application/modules/homepage/models<br>
        application/modules/homepage/views</code>
 
        <p>Silahkan lihat artikel lain tentang CodeIgniter di blog saya <a href="http://kang-cahya.com">www.kang-cahya.com</a>.</p>
    </div>
 
    <p class="footer">Page rendered in <strong>0.0201</strong> seconds</p>
</div>
 
</body>
</html>

coba anda akses di : localhost/hmvc/homepage/homepage
Selesai, HMVC berhasil di buat :)

Cara Membuat HMVC (hirarki model view controller) Pada Codeigniter

Cukup untuk pembahasan kali ini, sekian terima kasih :)


#referensi :
Continue Reading...
 
Generate HTML ke PDF dengan mudah menggunakan codeigniter 3

Generate HTML ke PDF dengan mudah menggunakan codeigniter 3 - Mungkin artikel seperti ini sudah banyak di internet, tapi apa salahnya kalau saya membagi ulang untuk anda denagan versi yang berbeda :D .

Sebelum memulai praktik, seperti biasa, kita harus mempersiapkan alatnya terlebih dahulu, pada materi kali ini saya menggunakan :

  • Codeigniter 3.0.0 (framework)
  • Dompdf (library)
  • Pdf (library | tambahan)

Praktik

application/controller/Example.php

<?php
 if (!defined('BASEPATH'))exit('No direct script access allowed');

 class Example extends CI_Controller {
  
  function __construct() {
   parent::__construct();
  }

  function index(){
   $this->load->view('example');
  }
  
  function generate_to_pdf(){
   $this->pdf->load_view('example_to_pdf');
   $this->pdf->render();
   $this->pdf->stream("name-file.pdf");
  }
 }


Keterangan :

Cukup sederhana bukan kode-nya ? :D

  • $this->pdf->load_vew('example_pdf'); berfungsi untuk meload view yang nanti nya akan di generate ke  PDF.
  • $this->pdf->render(); bertugas merender file view di atas.
  • $this->pdf->stream("bane-file.pdf"); anda bisa mengatur nama file pdf-nya disini
 Mungkin untuk keterangan lebih lanjut anda bisa melihatnya di github.

Go To Github
Jangan Lupa Di baca README.MD nya

Terimakasih


Referensi


Continue Reading...
 
Membuat Chain Selected Data Wilayah Seluruh Indonesia CI3
Kali ini saya ingin berbagi database nama wilayah seluruh indonesia dari mulai provinsi, kabupaten, kecamatan dan desa. Selain itu saya juga ingin sekaligus berbagi bagaimana cara membuat sebuah drop dow berantai, tapi kadang orang menyebutnya dengan chain selected, dynamic combobox dan lain sebagainya. Tanpa banyak basa basi mari kita langsung simak bahasan di bawah ini.

Spesifikasi :
  • Php 5.4
  • Mysql
  • Codeigniter 3.0
  • Jquery

Database
Download terlebih dahulu database nama-nama wilayah di seluruh indonesia, DOWNLOAD DISINI.
Buat database baru dengan nama "wilayah_indo".

Config
ubah di autoload.php menjadi :
$autoload['libraries'] = array('database'); //(baris 63)

$autoload['helper'] = array('url','html');  //(baris 91)

Ubah di config.php menjadi :
$http = 'http' . ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') ? 's' : '') . '://'; $newurl = str_replace("index.php","", $_SERVER['SCRIPT_NAME']); $config['base_url']    = "$http" . $_SERVER['SERVER_NAME'] . "" . $newurl; //(baris 20)

$config['encryption_key'] = 'abcdefghijklmnopqrstuvwxyz'; //(baris 312)

Ubah di routes.php menjadi :
$route['default_controller'] = 'wilayah'; //(bais 52)

Code
Setelah database di download dan codeigniter sudah di atur, barulah kali ini kita mulai membuat kodenya.

Wilayah.phpM_wilayah.phpwilayah.php
application/view/wilayah.php

<!DOCTYPE html>
<html lang="en">
 <head>
 <meta charset="utf-8">
 <meta http-equiv="X-UA-Compatible" content="IE=edge">

 <meta name="viewport" content="width=device-width, initial-scale=1.0" />
 <meta name="description" content="Data seluruh wilayah indonesia dari mulai provinsi, kabupaten, kecamatan dan desa. By : http://kang-cahya.com" />
 <meta name="author" content="Cahya Dyazin" />

 <title>Wilayah Indonesia</title>
 <link rel="icon" type="image/png" href="<?php echo $path; ?>/favicon.png">
 <script src="<?php echo $path; ?>/jquery.min.js"></script>
 <script>
        $(document).ready(function(){
            $("#provinsi").change(function (){
                var url = "<?php echo site_url('wilayah/add_ajax_kab');?>/"+$(this).val();
                $('#kabupaten').load(url);
                return false;
            })
   
   $("#kabupaten").change(function (){
                var url = "<?php echo site_url('wilayah/add_ajax_kec');?>/"+$(this).val();
                $('#kecamatan').load(url);
                return false;
            })
   
   $("#kecamatan").change(function (){
                var url = "<?php echo site_url('wilayah/add_ajax_des');?>/"+$(this).val();
                $('#desa').load(url);
                return false;
            })
        });
    </script>

 </head>
 <body align="center">
  <h1>Data Seluruh wilayah di indonesia</h1>
  
  <p>Provinsi :</p>
  <select name="prov" class="form-control" id="provinsi">
   <option>- Select Provinsi -</option>
   <?php foreach($provinsi as $prov){
    echo '<option value="'.$prov->id.'">'.$prov->nama.'</option>';
   } ?>
  </select>
  
  <p>Kabupaten :</p>
  <select name="kab" class="form-control" id="kabupaten">
   <option value=''>Select Kabupaten</option>
  </select>
  
  <p>Kecamatan :</p>
  <select name="kec" class="form-control" id="kecamatan">
   <option>Select Kecamatan</option>
  </select>
  
  <p>Desa :</p>
  <select name="des" class="form-control" id="desa">
   <option>Select Desa</option>
  </select>
  <hr>
  <footer>2015 | Codeigniter 3 | By, <a href="http://kang-cahya.com" rel="dofollow">Cahya Dyazin</a></footer>
 </body>
</html>

Jika semuanya sudah di buat. Pada saat di Run di browser, maka tampilannya akan tampak seperti gambar di bawah ini.

Membuat Dropdown Select Data Wilayah Seluruh Indonesia CI3


Full Code Referensi
Continue Reading...
Previous PostOlder Posts Home