[Yii Framework] Refresh Data Pada UI Tanpa Refresh Halaman (seperti Facebook and Twitter)
April 11, 2012 17 Comments
Jika kita lihat facebook dan twitter, maka kita sering melihat data status teman-teman kita yang akan terupdate secara otomatis sesuai data terbaru tanpa kita perlu me-refresh/reload halaman pada browser kita.. Saya akan coba memaparkan cara pembuatan seperti ini dengan menggunakan Yii Framework.. tidak tahu apakah metode yang digunakan sama dengan yang ada di FB/Twitter tapi tidak ada salahnya jika kita membuat hal yang serupa dengan pemikiran kita sendiri..
Jadi sebenarnya yang kita lakukan adalah me-refresh data dengan menggunakan AJAX seperti pada postingan sebelumnya dengan menggunakan interval waktu.. Hanya saja kita modifikasi perintahnya untuk merefresh data terbaru yang ada pada database.. Saya akan gunakan contoh kita me-refresh halaman admin agar CGridView yang ada senantiasa menampilkan data terupdate. Saya asumsikan pada halaman admin terdapat CGridview seperti berikut :
<?php $this->widget('zii.widgets.grid.CGridView', array( 'id'=>'category-grid', 'dataProvider'=>$model->search(), 'filter'=>$model, 'columns'=>array( 'data1', 'data2', array( 'class'=>'CButtonColumn', ), ), )); ?>
Kemudian agar data bisa otomatis terupdate baik di refresh atau tidak, tambahkan script berikut pada bagian atas code view tersebut :
<script type="text/javascript"> setInterval( // fungsi untuk menjalankan suatu fungsi berdasarkan waktu function(){ $.fn.yiiGridView.update('category-grid', { // fungsi untuk me-update data pada Cgridview yang memiliki id=category_grid data: $(this).serialize() }); return false; }, 10000 // fungsi di eksekusi setiap 10 detik sekali ); </script>
Penjelasan : anda dapat melihat penjelasannya pada baris-baris tersebut..
Okeh, selesai…. Selamat mencoba..
Semoga membantu…
mantap gan!!.. tutorialnya sangat membantu…
ane mo nanya gan?Cara membuat iframe dalam yiii gmana ya???
ane nyoba seperti ini tapi kok gak jalan..
<iframe src="createUrl(‘controller/action’);?>”>
mohon pencerahannya….. thanks..
wah, saya juga ga pernah pake iframe gan… ga tau juga..
udeh bisa gan…
<iframe src=createUrl(controler/action); ?>>
tanpa tanda kutip…
oz, buat ilangin loading indikator di atas saat refresh halaman gmana gan??..
itu sendiri fitur bawaan dari CGridView gan.. saya sendiri juga ga pernah otak-atik dsana gan..
oke gan… thanks
gan itu refresh gridviewnya berdasarkan dataquery di $model->search ya? Kalo misal ada form input terus bawahnya cgridview, ketika formnya disave maka akan ngerefresh grid otomatis dgn tambahan data yg diinput td caranya gmn gan? thnks sebelumnya
yang jelas agan pastikan aja field2 yang ada pada form tersimpan di action nya.. nanti dia otomatis nangkep gan dari fungsi yii yang :
$.fn.yiiGridView.update(‘category-grid’, { // fungsi untuk me-update data pada Cgridview yang memiliki id=category_grid
data: $(this).serialize()
bro klo mau buat login dg facebook conncet di yii gmn ya? thx
coba cari aja di wiki nya yii framework mas.. itu udah ada kok..
gimana pula jika mau keluar sound alert setiap kali ada data baru?
saya ga pernah coba kalo yang gitu gan..
Makasih mas,,,sangat berguna sekali
bang, kalau untuk memberikan tanda jika ada coment baru diforum tanpa hrs refresh(kyk notif facebook lh).
itu gmana y bang?
pake ajax sih gan, jadi tiap berapa detik sekali suruh ngecek database, ada yang baru ga..
contoh penggunaanya ada gk di Yii. maaf bang baru belejar . .
gan mau tanya, kalo mau tampilin form tanpa di input pas di search gmna yaa? jadi saya punya tabel contract yg terdiri dari 4 fied, yaitu no_contact, tenor, op, dan interest. no_contact sbg PK, nah pas di search no_contact, form tenor, op, dan interest nya langsung tampil. Mohon bantuanya masih newbie soalnya. Terima kasih
kurang lebih seperti ini gan https://sabitlabscode.wordpress.com/2012/08/16/yii-framework-select-data-from-dialog/