Assalamualaikum dan salam sejahtera..
Berikut adalah contoh coding untuk proses View, Edit dan Delete menggunakan bootstrap modal..
List
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 | <?php echo $this->load->view('jq_work'); ?> <?php echo $this->load->view('modal_wDelete'); ?> <?php echo $this->load->view('modal_wView'); ?> <?php echo $this->load->view('modal_wEdit'); ?> <table class="table table-bordered"> <thead> <tr> <th width="5%">No</th> <th width="15%">Position Held</th> <th width="35%">Place of Work</th> <th width="15%">Sector</th> <th width="20%">Duration</th> <th width="10%">Action</th> </tr> </thead> <tbody class="record"> <?php if($CountWork>0) { foreach($workData as $row): $no++; ?> <tr> <td><?php echo $no;?>.<?php echo form_hidden('id_applicantpc_experience', $row['id_applicantpc_experience']);?> </td> <td><?php echo $row['desc_position'];?></td> <td><?php echo $row['workplace'];?></td> <td><?php echo $row['desc_sector'];?><?php if($row['sector']==4){ echo " - ".$row['other_sector'];}?></td> <td><?php echo date('d/m/Y',strtotime($row['date_from']))." - ".date('d/m/Y',strtotime($row['date_to']));?></td> <td> <div class="btn-group"> <a id="view<?php echo $no;?>" href="" class="btn btn-mini" data-toggle="modal" data-target="#myModal_WorkView" onClick="document.getElementById('idExp').value=<?php echo $row['id_applicantpc_experience'];?>"><i class="icon-search"></i></a> <a id="edit<?php echo $no;?>" href="" class="btn btn-mini" data-toggle="modal" data-target="#myModal_WorkEdit" onClick="document.getElementById('idExp').value=<?php echo $row['id_applicantpc_experience'];?>"><i class="icon-pencil"></i></a> <a href="" class="btn btn-mini" data-toggle="modal" data-target="#myModalDel" onClick="document.getElementById('idExp').value=<?php echo $row['id_applicantpc_experience'];?>"><i class="icon-trash"></i></a> </div> </td> </tr> <?php endforeach; ?> </tbody> </table> <input type="hidden" name="idExp" id="idExp"> |
Modal
Modal Work View : modal_wView.php
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 | <div id="myModal_WorkView" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button> <h3 id="myModalLabel">Applicant's Work Experience</h3> </div> <div class="modal-body"> <table width="95%" border="0" cellpadding="2" cellspacing="2" align="center"> <tr> <td colspan="3"> </td> </tr> <tr> <td width="20%">Position Held</td> <td width="2%">:</td> <td width="73%"><span id="Vposition"></span></td> </tr> <tr> <td>Designation</td> <td>:</td> <td><span id="Vdesignation"></span></td> </tr> <tr> <td>Place of Work</td> <td>:</td> <td><span id="Vworkplace"></span></td> </tr> <tr> <td>Duration</td> <td>:</td> <td><span id="Vduration"></span></td> </tr> <tr> <td>Sector</td> <td>:</td> <td><span id="Vsector"></span></td> </tr> <tr> <td>Grade</td> <td>:</td> <td><span id="Vgrade"></span></td> </tr> <tr> <td colspan="3"> </td> </tr> </table> </div> <div class="modal-footer"> <button id="btn_Ok" class="btn btn-primary" data-dismiss="modal" aria-hidden="true"><i class="icon-remove icon-white"></i>Close</button> </div> </div> |
Modal Work Edit: modal_wEdit.php
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 | <?php echo form_open('', array('name' => 'frm', 'id' => 'frm')) ?> <div id="myModal_WorkEdit" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button> <h3 id="myModalLabel">Applicant's Work Experience</h3> </div> <div class="modal-body"> <table width="95%" border="0" cellpadding="2" cellspacing="2" align="center"> <tr> <td width="20%">Position Held</td> <td width="2%">:</td> <td width="73%"> <?php echo form_dropdown('Eposition', $position, set_value('Eposition'), 'class="input-xlarge" id="Eposition"') ?> </td> </tr> <tr> <td>Designation</td> <td>:</td> <td> <?php echo form_input('Edesignation', set_value('Edesignation'), 'class="input-large" id="Edesignation" maxlength="60"' ) ?> </td> </tr> <tr> <td>Place of Work</td> <td>:</td> <td> <?php echo form_textarea('Eworkplace', set_value('Eworkplace'), 'class="span3" id="Eworkplace" maxlength="255"' ) ?> </td> </tr> <tr> <td>Duration</td> <td>:</td> <td>From <?php echo form_input('Edate_from', set_value('Edate_from'), 'class="input-small" id="Edate_from"') ?> To <?php echo form_input('Edate_to', set_value('Edate_to'), 'class="input-small" id="Edate_to"') ?> </td> </tr> <tr> <td>Sector</td> <td>:</td> <td> <?php foreach($sector as $row): $i++; ?> <input type="radio" name="Esector" id="Esector<?php echo $i;?>" value="<?php echo $row['id_sector'];?>" <?php echo set_radio('Esector', $row['id_sector']); ?> /> <?php echo $row['description']; ?><br> <?php endforeach; ?> </td> </tr> <tr> <td>Grade</td> <td>:</td> <td> <?php echo form_dropdown('Egrade', $grade, set_value('grade'), 'id="Egrade"') ?> </td> </tr> <tr><td colspan="2"> </td><td><span id="error_message" class="required"></span></td></tr> </table> </div> <div class="modal-footer"> <input type="hidden" name="id" id="id"> <button id="btn_Cancel" class="btn btn-primary" data-dismiss="modal" aria-hidden="true"><i class="icon-remove icon-white"></i>Cancel</button> <button type="submit" class="btn btn-primary" id="btn_wEdit" name="btn_wEdit"><i class="icon-ok icon-white"></i> Save</button> </div> </div> <?php echo form_close() ?> |
Modal Work Edit: modal_wDelete.php
1 2 3 4 5 6 7 8 9 10 11 12 13 | <div id="myModalDel" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button> <h3 id="myModalLabel">Warning</h3> </div> <div class="modal-body"> <p>Are you sure want to delete the record? Click 'Yes' to proceed otherwise click 'No'.</p> </div> <div class="modal-footer"> <button id="btn_No" class="btn btn-primary" data-dismiss="modal" aria-hidden="true"><i class="icon-remove icon-white"></i>No</button> <button id="btn_YesDel" class="btn btn-primary"><i class="icon-ok icon-white"></i>Yes</button> </div> </div> |
JQuery
jQuery : jq_work.php
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 | <script type="text/javascript"> $(document).ready(function(){ //modal - action after click button Delete->Yes $('#btn_YesDel').click(function(){ var idExp = $('#idExp').val(); $(location).attr('href','<?php echo base_url() ?>index.php/applicant_work/delete/'+idExp); }); for(var i=1;i<=$('#bilExp').val();i++) { //modal - action after click button View $('#view'+i).click(function(){ var idExp = $('#idExp').val(); $.post('<?php echo base_url() ?>index.php/applicant_work/view/'+idExp,function(data){ var obj = $.parseJSON(data); $('#Vposition').html(obj.desc_position); $('#Vdesignation').html(obj.designation); $('#Vworkplace').html(obj.workplace); $('#Vduration').html(obj.date_from+" - "+obj.date_to); $('#Vsector').html(obj.desc_sector); $('#Vgrade').html(obj.desc_grade); }); }); //modal - action after click button Edit $('#edit'+i).click(function(){ var idExp = $('#idExp').val(); $.post('<?php echo base_url() ?>index.php/applicant_work/view/'+idExp,function(data){ var obj = $.parseJSON(data); $('#id').val(obj.id_applicantpc_experience); $('#Eposition option[value=' + obj.position +']').attr("selected",true); $('#Edesignation').val(obj.designation); $('#Eworkplace').val(obj.workplace); $('#Edate_from').val(obj.date_from); $('#Edate_to').val(obj.date_to); $('input[name=Esector][value=' + obj.sector +']').attr("checked",true); }); }); } //end function for //modal - action after click button Save $("#btn_wEdit").click(function( e ) { e.preventDefault(); var id = $('#id').val(); var position = $('#Eposition').val(); var designation = $('#Edesignation').val(); var workplace = $('#Eworkplace').val(); var dtFrom = $('#Edate_from').val(); var dtTo = $('#Edate_to').val(); var sector = $('input:radio[name=Esector]:checked').val(); var grade = $('#Egrade').val(); $.ajax({ type: "POST", url: "<?=base_url()?>index.php/applicant_work/update", cache: false, dataType: "json", data: 'id='+id+'&Eposition='+position+'&Edesignation='+designation+'&Eworkplace='+workplace+'&dtFrom='+dtFrom+'&dtTo='+dtTo+'&Esector='+sector+'&Egrade='+grade, success: function(result){ if(result.error) { $(".alert").fadeIn('slow'); $("#error_message").html(result.message); } else { $(location).attr('href','<?php echo base_url() ?>index.php/applicant_work/refresh/'+modul_id); } } }); }); } |
Controller
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 | <?php class Applicant_Work extends MY_Controller { public function __construct(){ parent::__construct(); $this->load->model('applicant_model'); } function index() { $userid = $this->Mymodel->get_one_field('id_user_pc',array('ic_no'=>$this->session->userdata('username')),'tr_user_pc'); $id = $userid['id_user_pc']; $data['workData'] = $this->applicant_model->app_work($id); $data['position'] = $this->Mymodel->get_select_list('lt_profession', array('key'=>'id_profession', 'val'=>'description')); $data['sector'] = $this->applicant_model->get_data('lt_sector'); $data['grade'] = $this->applicant_model->get_select_list('lt_grade', array('key'=>'id_grade', 'val'=>'description')); $this->data = $data; $this->content_view = "applicant/v_work_experience"; $this->_render_page($data); } public function view($expID) { echo json_encode($this->applicant_model->v_work($expID)); } public function update() { $dd = substr($this->input->post('dtFrom'),0,2); $mm = substr($this->input->post('dtFrom'),3,2); $yy = substr($this->input->post('dtFrom'),6,4); $date_from = $yy."-".$mm."-".$dd; $dd2 = substr($this->input->post('dtTo'),0,2); $mm2 = substr($this->input->post('dtTo'),3,2); $yy2 = substr($this->input->post('dtTo'),6,4); $date_to = $yy2."-".$mm2."-".$dd2; $dtFrom = date('Y-m-d', strtotime($date_from)); $dtTo = date('Y-m-d', strtotime($date_to)); $data['post']['position'] = $this->input->post('Eposition'); $data['post']['designation'] = $this->input->post('Edesignation'); $data['post']['workplace'] = $this->input->post('Eworkplace'); $data['post']['date_from'] = $dtFrom; $data['post']['date_to'] = $dtTo; $data['post']['sector'] = $this->input->post('Esector'); $data['post']['grade'] = $this->input->post('Egrade'); // form validation $this->form_validation->set_rules('Eposition', '<b>Position Held</b>', 'required'); $this->form_validation->set_rules('Edesignation', '<b>Designation</b>', 'required'); $this->form_validation->set_rules('Eworkplace', '<b>Place of Work</b>', 'required'); $this->form_validation->set_rules('dtFrom', '<b>Duration Form</b>', 'required'); $this->form_validation->set_rules('dtTo', '<b>Duration To</b>', 'required'); $this->form_validation->set_rules('Esector', '<b>Sector</b>', 'required'); $this->form_validation->set_rules('Egrade', '<b>Sector</b>', 'integer'); $result = array(); if ($this->input->is_ajax_request()) { if ($this->form_validation->run() == FALSE) { $result['error'] = true; $result['message'] = validation_errors(); } else { $result['error'] = false; $this->applicant_model->update_data('tr_applicantpc_experience', array('id_applicantpc_experience'=>$this->input->post('id')), $data['post']); } $json = json_encode($result); die($json); } else { redirect('applicant_work', 'refresh'); } } public function delete($expID,$modul_id) { $this->applicant_model->delete_data('tr_applicantpc_experience', array('id_applicantpc_experience'=>$expID)); flashMsg('Data has been deleted', 'success'); redirect('applicant_work'); } public function refresh($modul_id) { flashMsg('Information successfully update', 'success'); redirect('applicant_work'); } } |
Model
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 | <?php class Applicant_Model extends CI_Model { public function __construct() { parent::__construct(); } public function app_work($id){ $query = $this->db->query("SELECT a.*, b.description as desc_position, c.description as desc_sector FROM tr_applicantpc_experience a, lt_profession b, lt_sector c WHERE a.position = b.id_profession AND a.sector = c.id_sector AND a.id_user_pc = '$id'"); return $query->result_array(); } public function v_work($idExp){ $this->db->select("a.*, DATE_FORMAT(a.date_from, '%d/%m/%Y') as date_from, DATE_FORMAT(a.date_to, '%d/%m/%Y') as date_to, b.description as desc_position, c.description as desc_sector, d.description as desc_grade", FALSE); $this->db->join('lt_profession b', 'b.id_profession=a.position'); $this->db->join('lt_sector c', 'c.id_sector=a.sector'); $this->db->join('lt_grade d', 'd.id_grade=a.grade', 'left'); $this->db->where('a.id_applicantpc_experience', $idExp); $query = $this->db->get('tr_applicantpc_experience a'); return $query->row_array(); } function update_data($table,$key,$data) { $this->db->where($key); $this->db->update($table, $data); } function delete_data($table,$where=0) { if($where != 0) { foreach($where as $key=>$val){ $this->db->where($key, $val); } } $this->db->delete($table); } function get_select_list($table,$cols=array('key' => 'id','val' => 'name'),$with_select=1, $where='x') { extract($cols); $this->db->order_by($val); if($where!='x') $this->db->where($where[0], $where[1]); $query = $this->db->get($table); $arr = $query->result_array(); if ($with_select) $data[''] = '-- Select --'; foreach ($arr as $k => $v){ extract($v); $data[$$key] = $$val; } return $data; } function get_data($table) { $this->db->select('*'); $this->db->from($table); $query = $this->db->get(); return $query->result_array(); } function get_one_field($col,$where,$table) { $this->db->select($col); $this->db->where($where); $query = $this->db->get($table); return $query->row_array(); } } |
----------------------------------------------------------
Disediakan Oleh : Haslina Shamsudin
Sumber : Sistem AHPiS
terimakasi sangat membantu. bisakah saya minta desain databasenya kak? kebingunggan itu. :D
ReplyDelete