Langsung ke konten utama

Tutorial Codeigniter Dengan Ajax Dan Sweet Alert

Halo guys kali ini gua akan sharing tutorial sederhana membuat crud dengan menggunakan framework codeigniter atau yang biasa disebut CI, pasti framework ini sudah tidak asing lagi bagi kalian yang mempelajari bahasa pemograman php, Framework php adalah salah satu framework php yang sangat populer, dan untuk kalian yang sedang mendalami tentang bahasa pemograman web menggunakan php maka mungkin framework adalah salah satu framework yang wajib untuk kalian pelajari...

Kenapa Menggunakan Ajax? keuntungan menggunakan ajax yaitu kita tidak perlu merefresh halaman web page saat sedang memproses data, jadi web bisa lebih cepat dan efisien, lalu kenapa menggunakan sweet alert? bisa dilihat digambar dibawah ini.

           Alert Biasa                                           VS                                 Sweet Alert
             

Terlihat sekali kan bedanya, mana yang lebih cantik dan mana yang lebih menarik?? nahh karena hal tsb kita akan menggunakan sweet alert ini untuk mempercantik tampilan seperti peringatan dan yang lainnya. Oke langsung saja hal yang harus lu persiapkan adalah lu harus sudah mempunyai beberapa library seperti
  1. Codeigniter
  2. Bootstrap,Jquery,Datatables,Swal Js
untuk point nomor 2 bisa di download atau bisa juga menggunakan cdn yang lebih simple namun membutuhkan koneksi internet.

Langkah 1.
buat database dengan nama db_crud, lalu buat table dengan nama product isi field tablenya yaitu

lalu jangan lupa menyambungkan database pada application/config/database.php seperti dibawah ini
 
Langkah 2.
langkah selanjutnya adalah membuat file controller baru di folder application/controller bernama product.php
lalu buatlah codingan  seperti dibawah ini

<?php
class Product extends CI_Controller{
    function __construct(){
        parent::__construct();
        $this->load->model('product_model');
    }
    function index(){
        $this->load->view('product_view');
    }

    function product_data(){
        $data=$this->product_model->product_list();
        echo json_encode($data);
    }

    function save(){
        $data=$this->product_model->save_product();
        echo json_encode($data);
    }

    function update(){
        $data=$this->product_model->update_product();
        echo json_encode($data);
    }

    function delete(){
        $data=$this->product_model->delete_product();
        echo json_encode($data);
    }

}

lalu setelah controller dibuat, buatlah model baru pada foler application/model yaitu bernama product_model.php
lalu buatlah codingan  seperti dibawah ini

<?php
class Product_model extends CI_Model{

    function product_list(){
        $hasil=$this->db->get('product');
        return $hasil->result();
    }

    function save_product(){
        $data = array(
                'product_code'     => $this->input->post('product_code'),
                'product_name'     => $this->input->post('product_name'),
                'product_price' => $this->input->post('price'),
            );
        $result=$this->db->insert('product',$data);
        return $result;
    }

    function update_product(){
        $product_code=$this->input->post('product_code');
        $product_name=$this->input->post('product_name');
        $product_price=$this->input->post('price');

        $this->db->set('product_name', $product_name);
        $this->db->set('product_price', $product_price);
        $this->db->where('product_code', $product_code);
        $result=$this->db->update('product');
        return $result;
    }

    function delete_product(){
        $product_code=$this->input->post('product_code');
        $this->db->where('product_code', $product_code);
        $result=$this->db->delete('product');
        return $result;
    }
   
}

setelah controller dan model telah siap maka langkah selanjutnya adalah membuat file view baru pada foler application/view dengan nama product_view.php
lalu buatlah codingan  seperti dibawah ini

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <title>Product List</title>
    <link rel="stylesheet" type="text/css" href="<?php echo base_url().'assets/css/bootstrap.css'?>">
    <link rel="stylesheet" type="text/css" href="<?php echo base_url().'assets/css/jquery.dataTables.css'?>">
    <link rel="stylesheet" type="text/css" href="<?php echo base_url().'assets/css/dataTables.bootstrap4.css'?>">

  <!-- Plugin Sweet Alert -->
  <link href="<?php echo base_url()?>assets/sweetalert/sweetalert.css" rel="stylesheet">
    <script src="<?php echo base_url()?>assets/sweetalert/sweetalert.min.js" type="text/javascript"></script>
</head>
<body>
<div class="container">
    <!-- Page Heading -->
    <div class="row">
        <div class="col-12">
            <div class="col-md-12">
                <h1>Product
                    <small>List</small>
                    <div class="float-right"><a href="javascript:void(0);" class="btn btn-primary" data-toggle="modal" data-target="#Modal_Add"><span class="fa fa-plus"></span> Add New</a></div>
                </h1>
            </div>
           
            <table class="table table-striped" id="mydata">
                <thead>
                    <tr>
                        <th>Product Code</th>
                        <th>Product Name</th>
                        <th>Price</th>
                        <th style="text-align: right;">Actions</th>
                    </tr>
                </thead>
                <tbody id="show_data">
                   
                </tbody>
            </table>
        </div>
    </div>
       
</div>

        <!-- MODAL ADD -->
            <form>
            <div class="modal fade" id="Modal_Add" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
              <div class="modal-dialog modal-lg" role="document">
                <div class="modal-content">
                  <div class="modal-header">
                    <h5 class="modal-title" id="exampleModalLabel">Add New Product</h5>
                    <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                      <span aria-hidden="true">&times;</span>
                    </button>
                  </div>
                  <div class="modal-body">
                        <div class="form-group row">
                            <label class="col-md-2 col-form-label">Product Code</label>
                            <div class="col-md-10">
                              <input type="text" name="product_code" id="product_code" class="form-control" placeholder="Product Code">
                            </div>
                        </div>
                        <div class="form-group row">
                            <label class="col-md-2 col-form-label">Product Name</label>
                            <div class="col-md-10">
                              <input type="text" name="product_name" id="product_name" class="form-control" placeholder="Product Name">
                            </div>
                        </div>
                        <div class="form-group row">
                            <label class="col-md-2 col-form-label">Price</label>
                            <div class="col-md-10">
                              <input type="text" name="price" id="price" class="form-control" placeholder="Price">
                            </div>
                        </div>
                  </div>
                  <div class="modal-footer">
                    <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
                    <button type="button" type="submit" id="btn_save" class="btn btn-primary">Save</button>
                  </div>
                </div>
              </div>
            </div>
            </form>
        <!--END MODAL ADD-->

        <!-- MODAL EDIT -->
        <form>
            <div class="modal fade" id="Modal_Edit" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
              <div class="modal-dialog modal-lg" role="document">
                <div class="modal-content">
                  <div class="modal-header">
                    <h5 class="modal-title" id="exampleModalLabel">Edit Product</h5>
                    <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                      <span aria-hidden="true">&times;</span>
                    </button>
                  </div>
                  <div class="modal-body">
                        <div class="form-group row">
                            <label class="col-md-2 col-form-label">Product Code</label>
                            <div class="col-md-10">
                              <input type="text" name="product_code_edit" id="product_code_edit" class="form-control" placeholder="Product Code" readonly>
                            </div>
                        </div>
                        <div class="form-group row">
                            <label class="col-md-2 col-form-label">Product Name</label>
                            <div class="col-md-10">
                              <input type="text" name="product_name_edit" id="product_name_edit" class="form-control" placeholder="Product Name">
                            </div>
                        </div>
                        <div class="form-group row">
                            <label class="col-md-2 col-form-label">Price</label>
                            <div class="col-md-10">
                              <input type="text" name="price_edit" id="price_edit" class="form-control" placeholder="Price">
                            </div>
                        </div>
                  </div>
                  <div class="modal-footer">
                    <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
                    <button type="button" type="submit" id="btn_update" class="btn btn-primary">Update</button>
                  </div>
                </div>
              </div>
            </div>
            </form>
        <!--END MODAL EDIT-->

        <!--MODAL DELETE-->
         <form>
            <div class="modal fade" id="Modal_Delete" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
              <div class="modal-dialog" role="document">
                <div class="modal-content">
                  <div class="modal-header">
                    <h5 class="modal-title" id="exampleModalLabel">Delete Product</h5>
                    <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                      <span aria-hidden="true">&times;</span>
                    </button>
                  </div>
                  <div class="modal-body">
                       <strong>Are you sure to delete this record?</strong>
                  </div>
                  <div class="modal-footer">
                    <input type="hidden" name="product_code_delete" id="product_code_delete" class="form-control">
                    <button type="button" class="btn btn-secondary" data-dismiss="modal">No</button>
                    <button type="button" type="submit" id="btn_delete" class="btn btn-primary">Yes</button>
                  </div>
                </div>
              </div>
            </div>
            </form>
        <!--END MODAL DELETE-->

<script type="text/javascript" src="<?php echo base_url().'assets/js/jquery-3.2.1.js'?>"></script>
<script type="text/javascript" src="<?php echo base_url().'assets/js/bootstrap.js'?>"></script>
<script type="text/javascript" src="<?php echo base_url().'assets/js/jquery.dataTables.js'?>"></script>
<script type="text/javascript" src="<?php echo base_url().'assets/js/dataTables.bootstrap4.js'?>"></script>

<script type="text/javascript">
    $(document).ready(function(){
        show_product();    //call function show all product
       
        $('#mydata').dataTable();
       
        //function show all product
        function show_product(){
            $.ajax({
                type  : 'ajax',
                url   : '<?php echo site_url('product/product_data')?>',
                async : false,
                dataType : 'json',
                success : function(data){
                    var html = '';
                    var i;
                    for(i=0; i<data.length; i++){
                        html += '<tr>'+
                                  '<td>'+data[i].product_code+'</td>'+
                                '<td>'+data[i].product_name+'</td>'+
                                '<td>'+data[i].product_price+'</td>'+
                                '<td style="text-align:right;">'+
                                    '<a href="javascript:void(0);" class="btn btn-info btn-sm item_edit" data-product_code="'+data[i].product_code+'" data-product_name="'+data[i].product_name+'" data-price="'+data[i].product_price+'">Edit</a>'+' '+
                                    '<a href="javascript:void(0);" class="btn btn-danger btn-sm item_delete" data-product_code="'+data[i].product_code+'">Delete</a>'+
                                '</td>'+
                                '</tr>';
                    }
                    $('#show_data').html(html);
                }

            });
        }

        //Save product
        $('#btn_save').on('click',function(){
            var product_code = $('#product_code').val();
            var product_name = $('#product_name').val();
            var price        = $('#price').val();
            $.ajax({
                type : "POST",
                url  : "<?php echo site_url('product/save')?>",
                dataType : "JSON",
                data : {product_code:product_code , product_name:product_name, price:price},
                success: function(data){
                    $('[name="product_code"]').val("");
                    $('[name="product_name"]').val("");
                    $('[name="price"]').val("");
                    $('#Modal_Add').modal('hide');
                    swal("Success","Data Has Been Added.","success");
                    show_product();
                }
            });
            return false;
        });

        //get data for update record
        $('#show_data').on('click','.item_edit',function(){
            var product_code = $(this).data('product_code');
            var product_name = $(this).data('product_name');
            var price        = $(this).data('price');
           
            $('#Modal_Edit').modal('show');
            $('[name="product_code_edit"]').val(product_code);
            $('[name="product_name_edit"]').val(product_name);
            $('[name="price_edit"]').val(price);
        });

        //update record to database
         $('#btn_update').on('click',function(){
            var product_code = $('#product_code_edit').val();
            var product_name = $('#product_name_edit').val();
            var price        = $('#price_edit').val();
            $.ajax({
                type : "POST",
                url  : "<?php echo site_url('product/update')?>",
                dataType : "JSON",
                data : {product_code:product_code , product_name:product_name, price:price},
                success: function(data){
                    $('[name="product_code_edit"]').val("");
                    $('[name="product_name_edit"]').val("");
                    $('[name="price_edit"]').val("");
                    $('#Modal_Edit').modal('hide');
                    swal("Success","Data Has Been Updated.","success");
                    show_product();
                }
            });
            return false;
        });

      //delete record from database
      $('#show_data').on('click','.item_delete',function(){

            var product_code = $(this).data('product_code');
            var product_name = $(this).data('product_name');
            var price        = $(this).data('price');
          swal({
            title: "Are you sure?",
            text: "You will not be able to recover this data!",
            type: "warning",
            showCancelButton: true,
            confirmButtonClass: "btn-danger",
            confirmButtonText: "Yes, delete it",
            cancelButtonText: "cancel",
            closeOnConfirm: false,
            closeOnCancel: false
          },
          function(isConfirm) {
            if (isConfirm) {

               //ajax delete data to database
               $.ajax({
                type : "POST",
                url  : "<?php echo site_url('product/delete')?>",
                dataType : "JSON",
                data : {product_code:product_code},
                success: function(data){
                    $('[name="product_code_delete"]').val("");
                    $('#Modal_Delete').modal('hide');
                  swal("Success","Data Has Been Deleted.","success");
                    show_product();
                },
                error: function(jqXHR, textStatus, errorThrown) {
                  Swal.fire({
                    icon: 'error',
                    title: 'Oops...',
                    text: 'Something went wrong!'
                  })
                }
               });
           } else {
            swal("Cancelled", "Your data is safe", "error");
           }
       });
      
       });

    });

</script>
</body>
</html>

setelah codingan diatas sudah dimasukan maka tampilannya akan jadi seperti ini :
Tampilan Menambah data

Tampilan Sukses Menambah data


Tampilan Sukses Mengedit data


Tampilan Konfirmasi Hapus Data


Tampilan Sukses Menghapus data


nahh sekian tutorial Crud menggunakan codeigniter dengan ajax dan sweet alert ini, mohon maaf jika banyak kekurangan..
untuk source codenya bisa di download pada link dibawah ini... sekian dan terimakasih 

Link Download Source Code

Komentar

Postingan populer dari blog ini

Tutorial Crud Dengan PHP, Mysqli, Dan Bootstraps

Hallo Sobat... Disini gua mau share tutorial dan source code crud dengan menggunakan PHP mysqli dan bootstrap langsung ke codenya saja ya guys.... Database  CREATE DATABASE wjd_praktek; CREATE TABLE `pendaftaran_siswa`.`calon_siswa` ( `id` INT NOT NULL AUTO_INCREMENT , `nama` VARCHAR(64) NOT NULL , `alamat` VARCHAR(255) NOT NULL , `jenis_kelamin` VARCHAR(16) NOT NULL , `agama` VARCHAR(16) NOT NULL , `sekolah_asal` VARCHAR(64) NOT NULL , PRIMARY KEY (`id`) ) ENGINE = InnoDB; koneksi.php <?php             //error_reporting(0);//agar tidak menampilkan pesan error         // konek ke database wdj_praktek         $host = "localhost";     $user = "root";     $pass = "";     $db    = "wdj_praktek";         $koneksi = mysqli_connect($host,$user,$pass,$db);  ...

Membuat program biodata C++ dengan Switch Case

Kali ini saya akan menulis contoh program biodata switch case sederhana  menggunakan bahasa C++  dengan  menggunakan aplikasi dev C++,   Saya juga menambahkan gambar saat dicompile beserta Hasilnya.. data yg di input terdiri dari nama, Alamat, No hp,dan Tgl Lahir Source codenya sebagai berikut.. #include<iostream> #include<conio.h> using namespace std; int main() { lagi: system("cls");  char nama[30] , alamat[30],coba; int tgllahir , npm , pil; cout<<"--------Menu----------\n"; cout<<" 1. Nama        \n"; cout<<" 2. No HP                \n"; cout<<" 3. Alamat        \n"; cout<<" 4. Tgl Lahir                \n"; cout<<" 5. Lihat hasil   \n"; cout<<"----------------------\n"; mulai: cout<<"Masukan Pilihan anda[1-4]= ";cin>>pil;  switch (pil) {...

program Bayar Kuliah dengan C++

Hallo Sobatt... Kali ini saya ingin berbagi ilmu sederhana cara membuat program C++ menenukan huruf kapital atau tidak Saya menggunakan aplikasi dev C++ oke langsung mulai saja ini source codenya #include<iostream> #include<Stdio.h> using namespace std;  main() { long bsks , tsks , hsks, bayar, spp, npm;  char nama[30], prodi[30];  cout << "program perhitungan SPP\n"; cout<<"masukan nama anda : ";gets(nama); cout<<"masukan prodi anda :";gets(prodi); cout<<"masukan NPM  anda : ";cin>>npm;       cout<<"jumlah sks yang diambil :  ";     cin>>bsks;     cout<<"masukan biaya SKS     : ";     cin>>hsks;     cout<<"masukan biaya spp     : ";     cin>>spp;         bayar=bsks*hsks+spp;         cout<<"\n";     co...