Kali ini saya akan share tutorial cara mengambil data tarif pengiriman dari TIKI dengan PHP, disini saya menggunakan autocomplate plugin dari jquery-ui untuk mengambil data nama kabkota ketika anda mengetikan di textbox, kemudian karena disini saya menggunakan proses dengan menggunakan AJAX maka selain menggunakan plugin dari jquery-ui saya juga menggunakan plugin jquery, anda bisa mendownload nya disini untuk plugin jquery, dan klik disini untuk plugin jquery-ui, atau bisa juga langsung mengarahkan link target ke plugin, seperti ini
<link rel="stylesheet" type="text/css" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css"> <script type="text/javascript" src="http://code.jquery.com/jquery-1.11.3.min.js"></script> <script type="text/javascript" src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>oh ya saya juga menggunakan class dari simple html dom anda bisa mendownloadnya disini, jika anda ingin mempelajari dokumennya silahkan klik disini, ok langsung ke pembahasan
pertama buatlah projek dengan nama terserah anda, kemudian salin kode di bawah ini dan simpan file dengan nama index.php
<!DOCTYPE html> <html> <head> <link rel="stylesheet" type="text/css" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css"> <script type="text/javascript" src="http://code.jquery.com/jquery-1.11.3.min.js"></script> <script type="text/javascript" src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script> <style type="text/css"> .pesan { display: none; } </style> <title>Mengambil Tarif Pengiriman TIKI Dengan PHP</title> </head> <body> <h3>MENGAMBIL DATA TARIF PENGIRIMAN TIKI</h3> <hr /> <form method="post" class="check-tarif" action="harga.php"> <table border="1"> <tr> <td width="180">Dari</td> <td> <input type="text" id="f" name="f" label-search=".pesan-f" data-kode="#fc" onkeyup="wilayah(this)"><input type="hidden" id="fc" name="fc"> <span class="pesan pesan-f">mencari data</span> </td> </tr> <tr> <td>Tujuan</td> <td> <input type="text" id="t" name="t" label-search=".pesan-t" data-kode="#tc" onkeyup="wilayah(this)"><input type="hidden" id="tc" name="tc"> <span class="pesan pesan-t">mencari data</span> </td> </tr> <tr> <td>Berat</td> <td><input type="text" id="w" name="w" onkeyup="angka(this)"></td> </tr> <tr> <td>Panjang</td> <td><input type="text" id="lt" name="lt" onkeyup="angka(this)"></td> </tr> <tr> <td>Lebar</td> <td><input type="text" id="wt" name="wt" onkeyup="angka(this)"></td> </tr> <tr> <td>Tinggi</td> <td><input type="text" id="ht" name="ht" onkeyup="angka(this)"></td> </tr> <tr><td colspan="2"><button id="proses">PROSES</button></td></tr> </table> </form> <div class="reuslt"></div> <script type="text/javascript"> window.onload = function() { $('.check-tarif').on('submit', function(e) { $.ajax({ 'type': 'POST', 'dataType': 'JSON', 'url': 'harga.php', 'data': $(this).serialize(), 'beforeSend': function() { $('#proses').attr('disabled','disabled'); }, 'success': function(response) { $('#proses').removeAttr('disabled'); draw_data(response); } }); e.preventDefault(); }); } // draw data function draw_data(response) { var html = '<table border="1">'; html += '<tr><td colspan="3" align="center"><strong>'+ response.dari +' > '+ response.tujuan +'<br />'+ response.berat +' KG</strong></td></tr>'; html += '<tr><td width="180">Service</td><td width="180">Harga</td><td width="180">Info</td></tr>'; for(var i=0; i<response.data.length; i++) { html += '<tr><td>'+ response.data[i].service +'</td><td align="right">'+ response.data[i].harga +'</td><td>'+ response.data[i].info +'</td></tr>'; } html += '</table>'; $('.reuslt').html(html); } // autocomplate mencari daerah function wilayah(el) { var el1 = el.getAttribute('data-kode'), el2 = el.getAttribute('label-search'), kode = $(el1), pesan = $(el2); // set loading data if (el.value.length > 3) { loading(pesan, true); } else { loading(pesan, false); } $(el).autocomplete({ 'minLength': 4, 'autoFill': false, 'source': 'wilayah.php', 'select': function(s, r) { loading(pesan, false); el.value = r.item.daerah; kode.val(r.item.tariff_code); return false; } }).data('ui-autocomplete')._renderItem = function(ul, item) { loading(pesan, false); return $('<li>').append(item.daerah).appendTo(ul); }; } // wajib angka function angka(el) { var value = el.value; if (isNaN(value)) { el.value = 1; } } // loading function loading(e, s) { if (s == true) { e.show(); } else { e.hide(); } } </script> </body> </html>kemudian kita buat proses untuk mengambil nama kabkota ketika di ketikan di textbox Kota Asal, dan Kota Tujuan.
salin kode berikut dan simpan file dengan nama wilayah.php
<?php // mengambil GET wilayah $q = $_GET['term']; // set url ke website tiki $url = 'https://tiki.id/etc/CariDaerah/'.$q; // mengambil response dari wilayah yang di kerim ke tiki $json = file_get_contents($url); // set response json header('Content-Type: application/json'); echo $json;dan yang terakhir kita buat proses untuk mengambil jenis data pengiriman, silahkan salin kode berikut dan simpan file dengan nama harga.php
<?php
// load library
require_once __DIR__.'/simple_html_dom.php';
// get paramters
$dari = $_POST['f'];
$kode_dari = $_POST['fc'];
$tujuan = $_POST['t'];
$kode_tujuan = $_POST['tc'];
$berat = (int) $_POST['w'];
$panjang = (int) $_POST['lt'];
$lebar = (int) $_POST['wt'];
$tinggi = (int) $_POST['ht'];
// set response
$response = array(
'dari'=>$dari,
'kode_dari'=>$kode_dari,
'tujuan'=>$tujuan,
'kode_tujuan'=>$kode_tujuan,
'berat'=>$berat,
'panjang'=>$panjang,
'lebar'=>$lebar,
'tinggi'=>$tinggi,
'data'=>array()
);
// init
$url = 'https://tiki.id/tarif?f='.$dari.'&t='.$tujuan.'&fc='.$kode_dari.'&tc='.$kode_tujuan.'&w='.$berat.'<='.$panjang.'&wt='.$lebar.'&ht='.$tinggi;
$html = new simple_html_dom();
$html->load_file($url);
// class row text-center ada 2
// 1. info dari dan tujuan
// 2. info harga
$row = $html->find('div[class="row text-center"]', 1);
// class col-xs-12;
$div = $row->find('div');
foreach ($div as $dv) {
// get data services
@$datas = $dv->find('div strong h2', 0)->innertext;
$datas = explode('find('div strong h2 span', 0)->innertext;
// get info
@$info = $dv->find('div p small', 0)->innertext;
if (!empty($service)) {
array_push($response['data'], array(
'service'=>$service,
'harga'=>$harga,
'info'=>$info
));
}
}
// set response json
header('Content-Type: application/json');
echo json_encode($response);
Ok. sampai di sini dulu tutorial kali ini, selamat mencoba dan semoga bisa bermanfaat.
ArenaDomino Partner Terbaik Untuk Permainan Kartu Anda!
ReplyDeleteHalo Bos! Selamat Datang di ( arenakartu.org )
Arenadomino Situs Judi online terpercaya | Dominoqq | Poker online
Daftar Arenadomino, Link Alternatif Arenadomino Agen Poker dan Domino Judi Online Terpercaya Di Asia
Daftar Dan Mainkan Sekarang Juga 1 ID Untuk Semua Game
ArenaDomino Merupakan Salah Satu Situs Terbesar Yang Menyediakan 9 Permainan Judi Online Seperti Domino Online Poker Indonesia,AduQQ & Masih Banyak Lain nya,Disini Anda Akan Nyaman Bermain :)
Game Terbaru : Perang Baccarat !!!
Promo :
- Bonus Rollingan 0,5%, Setiap Senin
- Bonus Referral 20% (10%+10%), Seumur Hidup
Wa :+855964967353
Line : arena_01
WeChat : arenadomino
Yahoo! : arenadomino
Situs Login : arenakartu.org
Kini Hadir Deposit via Pulsa Telkomsel / XL ( Online 24 Jam )
Min. DEPO & WD Rp 20.000,-
INFO PENTING !!!
Untuk Kenyamanan Deposit, SANGAT DISARANKAN Untuk Melihat Kembali Rekening Kami Yang Aktif Sebelum Melakukan DEPOSIT di Menu SETOR DANA.