Showing posts with label javascript. Show all posts
Showing posts with label javascript. Show all posts

Thursday, October 29, 2015

Memahami Codeigniter menggunakan AJAX

Beberapa hal yang perlu dituliskan agar tidak lupa. Berikut adalah tulisan tentang konsep dasar tentang membuat sebuah aplikasi menampilkan menggunakan Codeigniter, yang dibantu fungsi javascript atau AJAX. Tulisan ini hanya untuk membantu memahami konsep dasar Pemrograman menggunakan Codeigniter. Langsung saja yang perlu disiapkan adalah codeigniter 2.0 atau versi keatas.
Tulisan ini difokuskan pada bagian view dan controller. Berikut adalah contoh script Controller dan view berikut penjelasannya sesuai kemampuan saya untuk menjelaskan.

Pertama kita main di controller. Buat file dengan nama c_test.php di dalam folder controller.
Setelah itu tuliskan script didalam c_test.php dibawah ini :


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

class c_test extends MX_Controller {
      
       public function __construct(){
             parent::__construct();
             $this->load->library(array('session','encrypt','form_validation'));
       }

       function index(){
             $this->load->view('v_test');
       }

       function v_test_js(){
             $this->load->view('v_test_js');
       }

       function tampil(){
          $user = $this->input->post('user');
          $password = $this->input->post('password');
          echo "<script>alert('berhasil');</script>";
          echo "<script>$('#user').html('".$user."');</script>";
          echo "<script>$('#password').html('".$password."');</script>";
          echo "<script>document.getElementById('tampil').style.display = '';</script>";
       }

}
 
Keterangan :

Script dibawah selalu ditulis disetiap controller yang saya buat untuk mendefinisikan fungsi-fungsi.


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

class c_test extends MX_Controller {
      
       public function __construct(){
             parent::__construct();
             $this->load->library(array('session','encrypt','form_validation'));
       }

               #Tempat menuliskan fungsi-fungsi pada controller.
}


Controller berfungsi mengatur yang ditampilkan pada browser. Setiap fungsi di controller bisa dipanggil melalui browser sesuai dengan lokasinya. Misal nama folder ci’nya adalah ikd, nama file’nya c_test.php. Maka pada browser bisa memanggil localhost/ikd/c_test. Nama class harus sesuai dengan nama file’nya.

class c_test extends MX_Controller {

 Kebetulan disini saya menggunakan hmvc yang memudahkan untuk mengatur folder controller, view, dan model’nya sesuai dengan nama modulenya. Disini saya memiliki folder ci dengan nama ikd, dan mempunyai module dengan nama test, nama file controller c_test.php, didalam file c_test.php ada function index yang berfungsi menampilkan default ketika kita memanggil file Controller tersebut. Jadi dengan adanya tambahan module maka di path browser saya dapat memanggil controller dengan path : localhost/ikd/test/c_test. Akan menampilkan view yang diload oleh index.

function index(){
$this->load->view('v_test');
}

Selanjutnya disini saya membuat fungsi v_test_js. V_test_js memanggil view v_test_js yang isinya nanti adalah semua javascript yang digunakan pada v_test. Kenapa tidak dituliskan jadi satu dengan v_test karena biar tidak campur dengan html sehingga untuk memantenancenya lebih mudah.

function index(){
$this->load->view('v_test');
}

Selanjutnua saya juga membuat fungsi tampil. Fungsi ini merupakan hasil setelah nanti di view terdapat aksi untuk klik button dan ditangkap difungsi javascript yang nantinya terus dilempar ke fungsi ini menggunakan AJAX.

//nama fungsi tampil
function tampil(){
      
//menangkap variable yang dikirim dari ajax yang ada di v_test_js.php
$user = $this->input->post('user');
$password = $this->input->post('password');

//menampilkan hasil menggunakan javascript
//menampilkan alert berhasil
echo "<script>alert('berhasil');</script>";

//menampilkan user dan password pada div user dan password di file v_test.php
       echo "<script>$('#user').html('".$user."');</script>";
       echo "<script>$('#password').html('".$password."');</script>";

       //menghilangkan display none sehingga tampilan user dan password dapat terlihat
       //display sebelumnya di div id=tampil adalah none
       echo "<script>document.getElementById('tampil').style.display = '';</script>";
}


Kedua Kita main di view. Buat view dengan nama v_test.php didalamfolder view. Tuliskan script html didalam v_test.php, scriptnya kurang lebih adalah seperti ini :


<html>
<body>
       <fieldset>
             <legend>Login</legend>
             <input name="user" type="text" /><br/>
             <input name="password" type="text" /><br/>
             <button onclick="login()">Masuk</button>
       </fieldset>
       <div id="tampil" style="display:none;">
             <fieldset>
                    <legend>User passsword</legend>
                    <div id="user"></div>
                    <div id="password"></div>
             </fieldset>
       </div>
</body>
</html>

<?php echo modules::run("test/c_test/v_test_js"); ?>
 
Keterangan :

Script diatas adalah view yang menampilkan input user dan input password. Perhatikan pada input dan div id pada secript diatas. Kita mulai dengan name setiap input, karena nanti di Ajax name ini sepagai identitas untuk menangkap isi dari input tersebut misal :

<input name="user" type="text" /><br/>

Dijavascript nanti kita bisa manangkap isi input name user dengan script dibawah ini

var user1 = $('input[name=user]').val();

Setelah itu kita bisa lihat setiap id pada div. Id setiap div ini membantu untuk mengidentivikasi div sehingga isi dari div tersebut dapat kita ubah sesuai dengan keinginan kita menggunakan javascript. Misal id user <div id="user"></div> Kita bisa mengubah isi div id user yang sebelumnya kosong menjadi isi dengan text user dengan script $(‘#user’).html(‘user’); script ini ditulis dijavascript.

Pada button terdapat onclick=login(), ini jika button diklik maka akan menjalankan fungsi login() yang terdapat pada file v_test_js.php.

<button onclick="login()">Masuk</button>

Script yang paling bawah adalah script php yang berfungsi memanggil atau menambahkan view v_test_js.php.

<?php echo modules::run("test/c_test/v_test_js"); ?>

Ketiga kita bisa membuat v_test_js.php didalam folder view juga. Kurang lebih isi filenya adalah script berikut :


<script type="text/javascript" src="<?php echo base_url(); ?>template/js/jquery.js"></script>
<script type="text/javascript" src="<?php echo base_url(); ?>template/js/jquery-1.11.1.min.js"></script>

<script>
       function login(){
             var user1 = $('input[name=user]').val();
             var password1 = $('input[name=password]').val();

             $.ajax({
                    type: 'POST',
                    url: "<?php echo base_url(); ?>test/c_test/tampil",
                    data: {user:user1,password:password1},
                    success:function(data){
                           $('#test').html(data);
                    }
             });
       }
</script>
<div id="test"></div>
 
Keterangan :

<script type="text/javascript" src="<?php echo base_url(); ?>template/js/jquery.js"></script>
<script type="text/javascript" src="<?php echo base_url(); ?>template/js/jquery-1.11.1.min.js"></script>

Script diatas berfungsi memanggil library agar ajax bisa berjalan. Lokasinya disesuaikan dengan penempatannya. Didalam codeigniter menggunakan <?php echo base_url(); ?>  untuk menampilkan base url Ci kita, kalo disini berarti menampilkan loaclhost/ikd, selanjutnya disambung dengan path lokasinya.

<script>
       function login(){
             var user1 = $('input[name=user]').val();
             var password1 = $('input[name=password]').val();

             $.ajax({
                    type: 'POST',
                    url: "<?php echo base_url(); ?>test/c_test/tampil",
                    data: {user:user1,password:password1},
                    success:function(data){
                           $('#test').html(data);
                    }
             });
       }
</script>

Fungsi login() berisi script ajax yang nantinya akan memanggil fungsi dicontroller dan mengirim beberapa variable yang akan ditangkap pada controller.

#Menangkap variable user dan password menggunakan javascript
var user1 = $('input[name=user]').val();
var password1 = $('input[name=password]').val();

#Lokasi Controller yang dituju
url: "<?php echo base_url(); ?>test/c_test/tampil",

#Variable yang dikirimkan pada controller
data: {user:user1,password:password1},

#Mengganti isi div id tes dengan dengan data
#data adalah tampilan dari isi controller dengan nama fungsi tampil
$('#test').html(data);

#berubah isinya ketika fungsi login digalankan
<div id="test"></div>

Jika saya mengakses localhost/ikd/test/c_test maka akan tampil



Jika diklik login maka yang akan tampil adalah alert berhasil dan tampilan dibawahnya :



Struktur file yang saya buat



Mungkin hanya ini dulu yang bisa saya tuliskan. Apabila ada yang ingin ditanyakan silahkan, nanti saya coba menjelaskan dan sekalian belajar juga agar bisa lebih baik lagi, Thanks Yaaaa..... laen waktu disambung lagi.













Tuesday, November 4, 2014

menampilkan foto saat input file dipilih

Menampilkan foto ketika input file dipilih menggunakan html dan javascript, sehingga ketika ingin mengupload foto dapat dilihat dulu gambar yang ingin diupload. berikut scriptnya :

<script>
function batal(){
             document.getElementById('form_md_kategori_barang').reset();
             $('input[name=GAMBAR]').change();
}
</script>
<input type="file" class ="form-control" onchange="readURL(this);" name="GAMBAR"/>
<img id="blah" src="#" alt="tampil gambar" style="display:none"/>
<script>
            function readURL(input){
                          if(input.files && input.files[0]){
                                   var reader = new FileReader();
                                   reader.onload = function(e){
                                            $('#blah').attr('src', e.target.result).width(150).height(200);
                                            document.getElementById('blah').style.display = 'none';
                                   }
                                   reader.readAsDataURL(input.files[0]);
                          }else{
                                 document.getElementById('blah').style.display = 'none';
                          }
               }
</script>
<button class="btn btn-default" onclick="batal()">Batal</button>

Thursday, October 2, 2014

Membuat klik kanan menggunakan jquery-contextMenu

JQuery.contextMenu adalah salah satu plugin JQuery yang dapat digunakan untuk membuat klik kanan. Dalam pembuatan aplikasi web terkadang diperlukan klik kanan agar aplikasi lebih berfungsi secara optimal. Beberapa plugin menyediakan fungsi untuk menampilkan klik kanan pada aplikasi web. Tetapi yang ingin saya dokumentasikan pertama kali ini adalah menggunakan JQuery.contextMenu. Langsungsaja praktek sederhananya menggunakan beberapa file .html, .js, dan .css. Yang terpenting silahkan download dulu pluginnya disini

Pertama buat folder dengan nama klikkanan dan didalamnya buat folder lagi dengan nama js dan css.

Setelah itu ambil file jquery.contextMenu.js dan jquery.contextMenu.css dari plugin yang didownload. Taruhlah file jquery.contextMenu.js di folder js dan jquery.contextMenu.css di folder css. sertakan juga folder images dari plugin dan taruh di folder css.

Setelah plugin sudah terpasang selanjutnya membuat file latihan.html di folder klikkanan dan isikan script html dibawah ini :


  

 <script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script></script>  
 <script type="text/javascript" src="js/jquery.contextMenu.js"></script>  
 <link href="css/jquery.contextMenu.css" rel="stylesheet" type="text/css" />  
 <script type="text/javascript">  
 $(function(){  
   $.contextMenu({  
     selector: '.context-menu-one',   
     callback: function(key, options) {  
       var m = "clicked: " + key;  
       window.console && console.log(m) || alert(m);   
     },  
     items: {  
       "edit": {name: "Edit", icon: "edit"},  
       "cut": {name: "Cut", icon: "cut"},  
       "copy": {name: "Copy", icon: "copy"},  
       "paste": {name: "Paste", icon: "paste"},  
       "delete": {name: "Delete", icon: "delete"},  
       "sep1": "---------",  
       "quit": {name: "Quit", icon: "quit"}  
     }  
   });  
   $('.context-menu-one').on('click', function(e){  
     console.log('clicked', this);  
   })  
 });  
 </script>  
 <body>  
      <br/><br/>  
      <br/><br/>  
      <br/><br/>  
      <br/><br/>  
      <br/><br/>  
      <div class="context-menu-one box menu-1">  
           <strong>right click</strong>  
      </div>  
 </body>  


Agar bisa menjalankan file diatas dengan baik masih harus terkoneksi dengan internet karena

<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script></script>

masih load dari server code.jquery.com. Jika ingin menggunakan di localhost maka download dulu scriptnya. Download dapat dilakukan dengan klik kanan di web page dan inspect element sehingga dibrowser muncul code diatas. Selanjutnya klik kanan pada link di inspect element code.jquery.com/jquery-latest.js dan open link in new tab.
Setelah terbuka di new tab dapat disave as dan taruh di folder js dan ubah script 
src="http://code.jquery.com/jquery-latest.js"
menjadi
src="js/jquery-latest.js"

Untuk pengembangan selanjutnya dapat lihat dokumentasi yang lebih lengkap hasil download plugin tersebut, karena sudah disertakan dokumentasinya. Atau dokumentasinya secara online disini.

Monday, September 15, 2014

membuat localStorage

LocalStorage merupakan tambahan/ fitur yang diberikan pada html5 yang dapat digunakan dengan javascript. LocalStorage ini membuat penyimpanan pada browser. Hanya broser yang compatible saja yang dapat mengakses menggunakan localstorage. Browser saat ini sudah mendukung localstorage. Untuk mengecek apakah broseser tersebut compatible atau tidak gunakan script sebagai berikut :

<script>
          if(typeof(localStorage) == 'undefined')
     alert('Browser anda tidak mendukung localStorage.!');
else
     alert('Browser anda mendukung localStorage.');
</script>

Untuk menyimpan variable di localStorage gunakan script dibawah ini :

<script>
         localStorage.setItem('nama','data');
</script>

Untuk mengambil data :

<script>
        localStorage.getItem('nama');
</script>

Untuk menghapus data yang di localStorage :

<script>
        localstorage.removeItem('nama');
</script>

Untuk menyimpan data di localStorage menggunakan JSON/ array :

<script>
         localStorage.setItem('nama',JSON.stringify(data_array));
</script>

Untuk mengambil data JSON / array dari localstorage:

<script>
       var result = JSON.parse(localstorage.getItem('nama'));
       $.each(result, function(i,field)){
             var data = result[i].data;
       });
</script>

mungkin sekian saja yang bisa dishare. masih banyak yang perlu dipelajari dan dipahami. semoga dapat menulis lebih baik dan bermanfaat lagi.

Wednesday, June 25, 2014

membuat Otomatis refresh halaman ketika tidak ada aktifitas selama 5 menit

<body onmousemove = "canceltimer()"; onclick = "canceltimer()">

<script type = "text/javascript">

var tim = 0;
function reload () {
tim = setTimeout("location.reload(true);",300000);   // 5 minutes
}

function canceltimer() {
window.clearTimeout(tim);  // cancel the timer on each mousemove/click
reload();  // and restart it
}

</script>

Thursday, February 20, 2014

menampilkan data json atau data array menggunakan combo di javascript

Diasumsikan sudah memiliki data json yang dipanggil menggunakan url, disini saya akan memanggil data json md_hari di alamat :

http://127.0.0.1/aplikasi_presensi/index.php/master_data/c_md_data_pegawai/combo_md_organisasi

data yang dipanggil menggunakan url diatas adalah seperti ini :

[{"kd_hari":"001","nm_hari":"Senin","keterangan":"\r"},{"kd_hari":"002","nm_hari":"Selasa","keterangan":null},{"kd_hari":"003","nm_hari":"Rabu","keterangan":null},{"kd_hari":"004","nm_hari":"Kamis","keterangan":null},{"kd_hari":"005","nm_hari":"Jum'at","keterangan":null},{"kd_hari":"006","nm_hari":"Sabtu","keterangan":null},{"kd_hari":"007","nm_hari":"Minggu","keterangan":null}]

permasalahan selanjutnya adalah bagaimana kita memanggil atau mengolah data tersebut dan ditampilkan menggunakan html seperti select option yang berbentuk combo.

Pertama saya menyiapkan file javascript yang berisi script ready function. fungsi tersebut akan dipanggil saat halaman web di load.

$(document).ready(function(){

//script 
});

Setelah itu membuat fungsi untuk memanggil JSON didalam ready(function(){ })

$.getJSON("http://127.0.0.1/aplikasi_presensi/index.php/master_data/c_md_jam_kerja/combo_md_hari", function(result){
//script
});

Setelah dipanggil selanjutnya memikirkan bagaimana agar data tersebut dapat tampil di html menggunakan combo. Sebelumnya saya siapkan file html yang didalamnya berisi script html untuk menampilkan combo.

<select name="kd_hari" id="kd_hari"><select>

Setelah html untuk combo sudah disiapkan kembali ke file javascript dan sekarang mulai poses penempatan data agar dapat diakses melalui combo html diatas. Script ini diisikan didalam function(result){ }

var sel = document.getElementById('kd_hari');
$.each(result, function(i, field){
var opt = document.createElement('option');
opt.innerHTML = result[i].nm_hari;
opt.value = result[i].kd_hari;
sel.appendChild(opt);
});

setelah selesai kembali ke file html dan panggil javascript menggunakan :
<script type="text/javascript" src="js_md_jam_kerja.js"></script>

berikut secript lengkap untuk file js :

//menampilkan combo hari
$.getJSON("http://127.0.0.1/aplikasi_presensi/index.php/master_data/c_md_jam_kerja/combo_md_hari", function(result){
var sel = document.getElementById('kd_hari');
$.each(result, function(i, field){
var opt = document.createElement('option');
opt.innerHTML = result[i].nm_hari;
opt.value = result[i].kd_hari;
sel.appendChild(opt);
});
});

javascript

Yang akan saya tulis dibawah ini tentang javascript yang saya gunakan untuk memecahkan permasalahan, bukan semua yang ada pada javascript. Saya menulis ini karena jika suatu saat saya ingin menggunakan atau menemukan masalah yang sama saya akan lebih mudah untuk mencarinya.

OnKeyUp = digunakan jika pada form input saat di isi maka akan memanggil fungsi yang sudah dibuat menggunakan javascript.
-------------------------------------------------------------------------------------------------------
var Teks = document.forminput.textinput.value.length; 
script diatas berfungsi membuat variable baru yang hasilnya merupakan jumlah karakter atau huruf dari string.
atau dapat disederhanaan seperti ini:

var teks = "Hello World!";
var n = teks.length;
-------------------------------------------------------------------------------------------------------

untuk menghapus class

$('#sub_list_kiri').removeClass('span12');

untuk menambahkan class

$('#sub_list_kiri').addClass('span7');

untuk menghilangkan display css none

document.getElementById("sub_list_kanan").style.display = "";

untuk menambahkan atribut disabled

$('#ambil_data_penjagaan').attr('disabled','disabled');

untuk menghapus atribut disabled

$('#ambil_data_penjagaan').removeAttr("disabled");


Sunday, February 16, 2014

convert date string in javacscript

Kali ini saya akan menuliskan tentang bagaimana mengconvert atau mengubah format tanggal dari variable string di javascript. Tulisan kali ini akan semakin saya perbaiki berdasarkan pengalaman yang sudah-sudah. Sebelumnya saya menulis dokumentasi yang saya peroleh secara asal-asalan. Tetapi seiring waktu berjalan saya akan memperbaikiya.

Langsung saja ketopik masalahnya, yaitu mengubah data string tanggal pada javascript sesuai dengan yang kita inginkan. Implementasi script ini tentunya menggunakan javascript. yang ditulis pada file html sebagai berikut:

<script>
var tl = new Date("2014-02-17");
var tanggal_lahir = tl.getDate()+"/"+(tl.getMonth()+1)+"/"+tl.getFullYear();
alert(tanggal_lahir);
</script>

Maka hasil yang akan ditampilkan dari hasil convert tanggal diatas adalah 17/02/2014

Untuk sekarang saya baru bisa menulis dengan sangat-sangat sederhana apa yang telah saya peroleh, tetapi untuk selanjutnya semoga dapat lebih lengkap dan jelas.

Thursday, January 16, 2014

loading dengan ajax

Jika kita membuat aplikasi web dan melibatkan javascript tentunya saat meload data dalam browser tidak akan terlihat sedang loading. Nah bagaimana cara membuat tampilan loading ketika sedang menunggu data yang sedang diload menggunkan javascript. setelah mencoba saya menemukan secript dibawah ini :

<script type="text/javascript">
$(function() {
$('#loading').ajaxStart(function(){
$(this).fadeIn();
}).ajaxStop(function(){
$(this).fadeOut();
});

$('#menu a').click(function() {
var url = $(this).attr('href');
$('#content').load(url);
return false;
});
});
</script>

setelah membuat javacript selanjutnya membuat html yang akan menampilkan proses login :

<div id="loading" style="display:none"><img src="images/loading.gif" /><br />Mohon tunggu. Data sedang dimuat.....</div>

keterangan :

"#menu" adalah proses yang dijalankan atau data yang diload menggunakn javascript menggunakan id menu, html dengan id menu memang tidak ditulis, disesuaikan dengan proses yang dijalankan. Tambahkan gambar gif agar menunggu saat proses login terlihat lebih mnarik. file gif tersebut diload menggunakan <img src="images/loading.gif" /> sesuaikan alamat dalam penyimpanan file gif.

Begitulah yang dapat saya tuliskan, saya tidak pandai dalam menulis. karena itu saya mulai belajar sedikit demisedikit, semoga akan leih baik dan tentunya sekrang masih banyak kesalahan saya mohon maaf yang sebesar-besarnya :)