- Membuat interface untuk Master jenis buku dengan Grid Dengan grid, kita dapat memanfaatkan teknik CRUD (Created, Read, Update, Delete) sehingga lebih mudah dan efisien dalam hal penulisan code program untuk insert,update,delete ke dalam tabel jenis buku Buat file jenis_buku.js dan simpan dalam folder js
- Buat class.jenis.php dan simpan difolder class
- Buat file ajax.jenis.php dan simpan difolder handle File ini digunakan untuk menghubungkan antara interface Extjs dengan class jenis
- Edit File index.js dan sisipkan gridJenis kedalam panel content panel
- Edit file index.js dan ubah menu Setup Jenis buku agar bila di Klik gridJenis menjadi panel yang aktif
- Edit file index.php di root folder
- ScreenShoot Menu Master Jenis Buku yang telah selesai
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 | var cm = new Ext.grid.ColumnModel({ defaults: { sortable:true }, columns: [ { dataIndex:'id_jenis', hidden:true, hideable:false },{ dataIndex:'jenis_buku', header:'Jenis Buku', editor: { xtype:'textfield', allowBlank:false } },{ dataIndex:'keterangan', header:'Keterangan', editor: { xtype:'textfield' } } ] } ); var proxy = new Ext.data.HttpProxy({ api : { read : 'handle/ajax.jenis.php?task=doRead', create : 'handle/ajax.jenis.php?task=doCreate', update : 'handle/ajax.jenis.php?task=doUpdate', destroy : 'handle/ajax.jenis.php?task=doDestroy' } }); var reader = new Ext.data.JsonReader({ totalProperty : 'total', successProperty : 'success', idProperty : 'id_jenis', root : 'data' },[ { name:'id_jenis' },{ name:'jenis_buku', allowBlank:false },{ name:'keterangan' } ] ); var writer = new Ext.data.JsonWriter({ encode : true, writeAllFields : false }); var ds = new Ext.data.Store({ proxy: proxy, reader:reader, writer:writer, autoSave:false, sortInfo:{ field:'jenis_buku', direction:'ASC' }, remoteSort:true, listeners: { write : function(store, action, result, res, rs) { } } } ); ds.load({ params:{ start:0, limit:100 } }); var gridJenis = new Ext.grid.EditorGridPanel({ title:'Master Jenis Buku', ds : ds, cm: cm, //clicksToEdit: 1, stripeRows:true, viewConfig:{ forceFit:true }, loadMask:true, bbar: new Ext.PagingToolbar({ store: ds, pageSize: 100, displayInfo:true, displayMsg : 'Displaying Data {0} - {1} of {2}', emptyMsg : "No Data to display" }), tbar: [ { text:'Tambah Baru', iconCls:'tambah', handler: function(){ var r = new ds.recordType({ jenis_buku:'', keterangan:'' }); gridJenis.stopEditing(); ds.insert(0,r); gridJenis.startEditing(0,1); } },'-',{ text:'Hapus Data', iconCls:'hapus', handler: function(){ var index = gridJenis.getSelectionModel().getSelectedCell(); if (!index) { return false; } var rec = gridJenis.store.getAt(index[0]); ds.remove(rec); if (ds.getCount() > 0) { if (index[0] > 0) gridJenis.getSelectionModel().select(index[0] - 1, index[1]); else gridJenis.getSelectionModel().select(index[0], index[1]); } } },'-',{ id:'simpan', text:'Simpan', iconCls:'simpan', handler: function(){ ds.save(); } },'-',{ text:'Auto Save', iconCls:'autosave', enableToggle : true, pressed:false, toggleHandler : function(btn, press) { if (press) Ext.getCmp('simpan').disable(); else Ext.getCmp('simpan').enable() if (press) ds.save(); ds.autoSave = press } } ] } ); |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 |
/**
* Class untuk melakukan operasi pada tabel jenis Buku
*
*/
class jenis extends Db {
/**
* Nama Tabel
*
* @var string
*/
protected $table ="ext_jenis";
/**
* Fungsi untuk membaca data tabel
*
* @param array $request
* @return string
*/
public function doRead($request){
$start = $request['start'];
$limit = $request['limit'];
$dir = $request['dir'];
$sort = $request['sort'];
$total =0;
$rsTotal = $this->selectSQL("select count(*) from ".$this->table);
while ($row = mysql_fetch_array($rsTotal))
$total = $row[0];
$sql = "select * from ".$this->table;
$sql .= " order by ". $sort ." ". $dir;
$sql .= " limit ".$start.",".$limit;
$rsData = $this->selectSQL($sql);
$data = Array();
while ($row = mysql_fetch_object($rsData)){
$data[] = $row;
}
$result = new stdClass();
$result->success = true;
$result->total = $total;
$result->data = $data;
return json_encode($result);
}
/**
* Fungsi untuk memasukkan data baru
*
* @param string $data
* @return string
*/
public function doCreate($data){
$data = json_decode(stripslashes($data));
$tmp = Array();
if (is_array($data)){
foreach ($data as $row){
$sql = "insert into ".$this->table;
$sql .= " (jenis_buku,keterangan)";
$sql .= " values('".$row->jenis_buku."','".$row->keterangan."')";
$error = $this->executeSQL($sql);
if (!$error){
$sql = "select * from ".$this->table ." order by id_jenis DESC limit 0,1";
$rs = $this->selectSQL($sql);
$tmp[] = mysql_fetch_object($rs);
}
}
} else {
$sql = "insert into ".$this->table;
$sql .= " (jenis_buku,keterangan)";
$sql .= " values('".$data->jenis_buku."','".$data->keterangan."')";
$error = $this->executeSQL($sql);
//die($error);
if (!$error){
$sql = "select * from ".$this->table ." order by id_jenis DESC limit 0,1";
$rs = $this->selectSQL($sql);
$tmp[] = mysql_fetch_object($rs);
}
}
$result = new stdClass();
$result->success =true;
$result->message="Insert Berhasil";
$result->data = $tmp;
return json_encode($result);
}
/**
* Fungsi untuk melakukan update data
*
* @param string $data
* @return string
*/
public function doUpdate($data){
$data = json_decode(stripslashes($data));
$tmp = Array();
if (is_array($data)){
foreach ($data as $row){
$field = Array();
$cols = Array();
foreach($row as $key=>$value){
if ($key != 'id_jenis')
$field[] = "$key='$value'";
$cols[] = $key;
}
$sql = "update ".$this->table;
$sql .= " set " . implode(",",$field);
$sql .= " where id_jenis = '".$row->id_jenis."'";
$error = $this->executeSQL($sql);
if (!$error){
$sql = "select ". implode(",",$cols) ." from ".$this->table ." where id_jenis ='" . $row->id_jenis ."'";
$rs = $this->selectSQL($sql);
$tmp[] = mysql_fetch_object($rs);
}
}
} else {
$field = Array();
$cols = Array();
foreach($data as $key=>$value){
if ($key != 'id_jenis')
$field[] = "$key='$value'";
$cols[] = $key;
}
$sql = "update ".$this->table;
$sql .= " set " . implode(",",$field);
$sql .= " where id_jenis = '".$data->id_jenis."'";
$error = $this->executeSQL($sql);
if (!$error){
$sql = "select ". implode(",",$cols) ." from ".$this->table ." where id_jenis ='" . $data->id_jenis ."'";
$rs = $this->selectSQL($sql);
$tmp[] = mysql_fetch_object($rs);
}
}
$result = new stdClass();
$result->success =true;
$result->message="Update Berhasil";
$result->data = $tmp;
return json_encode($result);
}
/**
* Fungsi untuk melakukan delete data
*
* @param string $data
* @return string
*/
public function doDestory($data){
$data = json_decode(stripslashes($data));
$id ="";
if (is_array($data))
$id = implode(",",$data);
else
$id = $data;
$sql = "delete from ".$this->table . " where id_jenis in (".$id.")";
$this->executeSQL($sql);
$result = new stdClass();
$result->success =true;
$result->message="Data Berhasil dihapus";
$result->data = Array();
return json_encode($result);
}
}
?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
require_once("../config.php");
require_once("../class/class.db.php");
require_once("../class/class.jenis.php");
$task = $_REQUEST['task'];
$jenis = new jenis();
switch ($task){
case 'doRead':
$result = $jenis->doRead($_REQUEST);
echo $result;
break;
case 'doCreate':
$result = $jenis->doCreate($_REQUEST['data']);
echo $result;
break;
case 'doUpdate':
$result = $jenis->doUpdate($_REQUEST['data']);
echo $result;
break;
case 'doDestroy':
$result = $jenis->doDestory($_REQUEST['data']);
echo $result;
break;
}
?> |
1 2 3 4 | activeItem:0, items:[ start,gridJenis //-->gridJenis ditambahkan kedalam panel utama ], |
1 2 3 4 5 6 | },{ text:'Master Jenis Buku', handler:function(){ Ext.getCmp('content_panel').layout.setActiveItem(1); } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 | ("config.php"); ?> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Aplikasi Buku</title> <link rel="stylesheet" type="text/css" href="/resources/css/ext-all.css"> <script type="text/javascript" src="/adapter/ext/ext-base.js"></script> <script type="text/javascript" src="/ext-all.js"></script> <script type="text/javascript">Ext.BLANK_IMAGE_URL = "/resources/images/default/s.gif"</script> <script type="text/javascript" src="js/index.js"> </script> <script type="text/javascript" src="js/start.js"> </script> <script type="text/javascript" src="js/jenis_buku.js"> </script> <style type="text/css"> body { font-family:'lucida grande',tahoma,arial,sans-serif; font-size:11px; /*outline: none; */ } .app_icon { background-image:url(images/computer.png) !important } .master_icon { background-image:url(images/application_form.png) !important } .tr_icon { background-image:url(images/book_open.png) !important } .simpan { background-image:url(images/disk.png) !important } .hapus { background-image:url(images/cancel.png) !important } .tambah { background-image:url(images/add.png) !important } .autosave { background-image:url(images/server_link.png) !important } </style> </head> <body> <div style="display:none;"> <div id="start-div" > <div style="float:left;" ><img src="images/gnome-fs-client.png" /></div> <div style="margin-left:100px;"> <h2>Aplikasi Buku</h2> <hr /> <p>Created and Development By http://xcoder.comoj.com</p> </div> </div> </div> </body> </html> |

Tidak ada komentar:
Posting Komentar
Please leave your comment.
Your Feedback is very helpful for the development of this blog. ♥
(ヘ。ヘ)
Thanks