cara menggunakan qrcode CodeIgniter terbaru

pada kesempatan ini saya akan membahas tentang penerapan atau menggunakan qrcode pada codeIgniter yaitu sebuah form memasukan data number yang kemudian di generate menjadi qrcode dalam bentuk gambar format png.
CodeIgniter QRCode
CodeIgniter QRCode

Untuk geenerate Qrcode di CodeIgiter kita perlu library Qrcode agar mempermudah dalam proses melakukan generate.
ok langsung saja.. berikut bahan-bahan yang harus di siapkan :

Kemudian setting konfigurasi dasar seperti di config dan autoload seperi base_url, route, session, url, dan lain-lain
panduan konfigurasi dasar CodeIgniter
ekstrak library qrcode di folder application/libraries pada codeIgniter, 
buat folder assets dan sub folder images, untuk penyimpanan hasil qrcode gambar 

Dan buat controller disini saya menggunakan dengan nama welcome.php code berikut :
<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Welcome extends CI_Controller {

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


 function _code($nim)
    {

     $this->load->library('ciqrcode'); //pemanggilan library QR CODE

        $config['cacheable']    = true; //boolean, the default is true
        $config['cachedir']     = './assets/'; //string, the default is application/cache/
        $config['errorlog']     = './assets/'; //string, the default is application/logs/
        $config['imagedir']     = './assets/images/'; //direktori penyimpanan qr code
        $config['quality']      = true; //boolean, the default is true
        $config['size']         = '1024'; //interger, the default is 1024
        $config['black']        = array(224,255,255); // array, default is array(255,255,255)
        $config['white']        = array(70,130,180); // array, default is array(0,0,0)
        $this->ciqrcode->initialize($config);
 
        $image_name=$nim.'.png'; //buat name dari qr code sesuai dengan nim
 
        $params['data'] = $nim; //data yang akan di jadikan QR CODE
        $params['level'] = 'H'; //H=High
        $params['size'] = 10;
        $params['savename'] = FCPATH.$config['imagedir'].$image_name; //simpan image QR CODE ke folder assets/images/
        $this->ciqrcode->generate($params); // fungsi untuk generate QR CODE
 }


  public function generate()
  {

          $data = array ('success' => false, 'messages'=> array());       
          $valid = $this->form_validation;

          $valid->set_rules('code','Code','trim|required|xss_clean');                                  
          $valid->set_error_delimiters('<p class="text-danger">', '</p>');
          if($valid->run() == FALSE)
          {
                  foreach($_POST as $key => $value) 
                  {
                          $data['messages'][$key] = form_error($key);
                  }               
          
          }
          else
          {
                $code=$this->input->post('code');              
                $img = $code.'.png';
                $qrcode = $this->_code($code);
               // $this->siswa_model->simpan_siswa($nim,$nama,$jurusan,$code); //simpan ke database
      $data['info'] = "<img src=".base_url('assets/images/'.$img)." class='rounded mx-auto d-block'>";
                  $data['success'] = true;   
                  //$data['redirect'] = base_url();     
                  
          }
          echo json_encode($data);        

  }
}


Dan tampilan view dengan welcome_message.php code berikut :
<!doctype html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <meta name="description" content="">
    <meta name="author" content="">
    <title>Create qrcode CodeIgniter</title>   
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.1.0/css/bootstrap.min.css"> 
   <link href="https://fonts.googleapis.com/css?family=Lato" rel="stylesheet">

   <style type="text/css">
     body {
      font-family: 'Lato', sans-serif;
      background-color: #f5f5f5;
    }
    .nduwur 
    {
      padding-top: 50px;
    }
   </style>
  </head>

  <body>   
 <div class="container">
  <div class="nduwur text-center">
    <a href="<?php echo site_url();?>" style="text-decoration: none"><p class="h2 font-weight-bold">Create qrcode CodeIgniter</p></a>
    <div class="lead"></div>
  </div>
  <hr width="50%">
  
  <div class="row">
    <div class="col-sm-4"></div>
    <div class="col-sm-4">
      <?php echo $info = $this->session->flashdata('info');
        echo form_open('welcome/generate',' id="form"');?>
      <div class="form-group">
        <label for="email">Enter Id generate Qrcode:</label>
        <input type="text" class="form-control" id="code" name="code">
      </div>
      <button type="submit" class="btn btn-primary float-right">Generate</button>
    </form>
      
    </div>
    <div class="col-sm-4"></div>
  </div>
 </div>
<br>
 <div id="konf"></div>

 <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.1.0/js/bootstrap.min.js"></script>  
 <script type="text/javascript">

    //input form
    $('#form').submit(function(e){
        e.preventDefault();
        
         var formData = new FormData($("#form")[0]);                 
        
         $.ajax({
           url: $("#form").attr('action'),
           type: 'post' ,
           data: formData,
           dataType: 'json',
           contentType : false,
           processData : false,
           success: function(response) {
             if(response.success === true) {

               $('.form-group').removeClass('has-error')
                               .removeClass('has-success');
               $('.text-danger').remove();
               $("#form")[0].reset();

              if(typeof(response.redirect) !== 'undefined')
              {
                document.location.href = response.redirect;
              }            
             else if(typeof(response.info) !== 'undefined')
              {
                $("#konf").html(response.info);
              }  

             } else {
               $.each(response.messages,function(key, value){
                 var element = $('#' + key);
                 element.closest('div.form-group')
                 .removeClass('has-error')
                 .addClass(value.length > 0 ? 'has-error' : 'has-success')
                 .find('.text-danger')
                 .remove();
                 element.after(value);
               });
             }
           }
        });
    });

    </script>

  </body>
</html>



Silahkan di run di localhost, jika work, akan tampil seperti gambar diatas, kalau masih gagal silahkan cek kembali konfigurasinya atau silahkan tinggalkan jejak di kolom komentar untuk jika perlu bantuan.


Berikut penjelasan cara menggunakan QRcode di CodeIgniter terbaru semoga membantu, terima kasih.

Comments

  1. Gimana cara diwload nya ke banyakan iklan

    ReplyDelete
  2. clik link download, nanti akan di arahkan safelinknya n chatpca goole, nanti direct link download

    ReplyDelete
  3. Can this QRcode generate change to others width?

    ReplyDelete
    Replies
    1. change in this code
      $params['level'] = 'H'; //H=High
      $params['size'] = 10;
      function _code()//generate qrcode

      Delete
  4. cara mngubah value qrcodenya gimana ya?

    ReplyDelete
    Replies
    1. maksudnya ubah value itu gimana..
      value nanti dari variable berikut :
      $params['data'] = $nim; //data yang akan di jadikan QR CODE

      Delete
  5. Mau nanya, jika data yang dimasukkan lebih dari 1 ke qrcode nya gimana yaa ? Misalnya masukkan juga no.hp kalau ada

    ReplyDelete

Post a Comment