Mengambil Tarif Pengiriman TIKI Dengan PHP
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">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
<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>
pertama buatlah projek dengan nama terserah anda, kemudian salin kode di bawah ini dan simpan file dengan nama index.php
kemudian kita buat proses untuk mengambil nama kabkota ketika di ketikan di textbox Kota Asal, dan Kota Tujuan.
<!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>
salin kode berikut dan simpan file dengan nama wilayah.php
dan yang terakhir kita buat proses untuk mengambil jenis data pengiriman, silahkan salin kode berikut dan simpan file dengan nama harga.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;
Ok. sampai di sini dulu tutorial kali ini, selamat mencoba dan semoga bisa bermanfaat.
<?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(' $service = $datas[0];
// get data harga
@$harga = $dv->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);
DONASI VIA PAYPAL
Bantu berikan donasi jika artikelnya dirasa bermanfaat. Donasi akan digunakan untuk memperpanjang domain https://apaitu10.blogspot.com/. Terima kasih.
Postingan Lebih Baru
Postingan Lebih Baru
Postingan Lama
Postingan Lama
Komentar