Postingan lainnya
Ongkir dan harga produk
Salam sobat PHP semua...
Setelah berhasil menampilkan harga ongkir dengan api rajaongkir, ada pertanyaan yang ingin saya ajukan, bagaimana mengkalkulasi ongkir dan harga , contoh harga produk Rp 150000,- , ongkir Rp50000,- nah untuk memunculkan total harga dan ongkir gimana? masalahnya yang untuk menampilkan nilai ongkir di index.php hanya begini:
<div class="panel panel-success">
<div class="panel-heading">
<h3 class="panel-title">Hasil</h3>
</div>
<div class="panel-body">
<ol>
<div id="ongkir"></div> //????
</div>
</ol>
</div>
sedang cek_ongkir ada di halaman cek_ongkir.php.
ambilnya pakai ajax, scriptnya begini :
<script type="text/javascript">
$(document).ready(function(){
$('#provinsi').change(function(){
//Mengambil value dari option select provinsi kemudian parameternya dikirim menggunakan ajax
var prov = $('#provinsi').val();
$.ajax({
type : 'GET',
url : 'https://domain.com/cek_kabupaten.php',
data : 'prov_id=' + prov,
success: function (data) {
//jika data berhasil didapatkan, tampilkan ke dalam option select kabupaten
$("#kabupaten").html(data);
}
});
});
$("#cek").click(function(){
//Mengambil value dari option select provinsi asal, kabupaten, kurir, berat kemudian parameternya dikirim menggunakan ajax
var asal = $('#asal').val();
var kab = $('#kabupaten').val();
var kurir = $('#kurir').val();
var berat = $('#berat').val();
$.ajax({
type : 'POST',
url : 'https://domain.com/cek_ongkir.php',
data : {'kab_id' : kab, 'kurir' : kurir, 'asal' : asal, 'berat' : berat},
success: function (data) {
//jika data berhasil didapatkan, tampilkan ke dalam element div ongkir
$("#ongkir").html(data);
}
});
});
});
</script>
4 Jawaban:
kalo ane liat respon data dari ajax, berupa json. tangkap aja data cost * total barang
menangkap cost yang ada di cek_ongkir.php sih bisa, tapi menangkap cost dari ajax gimana?
isi "data" dari respon ajax gmn gan? coba ss
index.php : <pre> <!DOCTYPE html> <html lang="en" dir="ltr"> <head> <meta charset="utf-8"> <title>Raja ongkir</title> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> <link rel="stylesheet" href="assets/css/bootstrap.min.css"> <!-- <link rel="stylesheet" href="assets/css/bootstrap.css"> --> </head> <body> <br> <div class="container"> <img src="assets/images/logo.png" alt="logo"> <br><br><br> <div class="row"> <div class="col-md-4"> <div class="panel panel-success"> <div class="panel-heading"> <h3 class="panel-title">Cek Ongkos Kirim</h3> </div> <div class="panel-body"> <div> <?php //Get Data Kabupaten $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => "http://api.rajaongkir.com/starter/city", CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "GET", CURLOPT_HTTPHEADER => array( "key:API Key Mu Disini" ), ));
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
echo "
&lt;div class= \"form-group\"&gt;
&lt;label for=\"asal\"&gt;Kota/Kabupaten Asal &lt;/label&gt;
&lt;select class=\"form-control\" name='asal' id='asal'&gt;";
echo "&lt;option&gt;Pilih Kota Asal&lt;/option&gt;";
$data = json_decode($response, true);
for ($i=0; $i &lt; count($data['rajaongkir']['results']); $i++) {
echo "&lt;option value='".$data['rajaongkir']['results'][$i]['city_id']."'&gt;".$data['rajaongkir']['results'][$i]['city_name']."&lt;/option&gt;";
}
echo "&lt;/select&gt;
&lt;/div&gt;";
//Get Data Kabupaten
//-----------------------------------------------------------------------------
//Get Data Provinsi
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL =&gt; "http://api.rajaongkir.com/starter/province",
CURLOPT_RETURNTRANSFER =&gt; true,
CURLOPT_ENCODING =&gt; "",
CURLOPT_MAXREDIRS =&gt; 10,
CURLOPT_TIMEOUT =&gt; 30,
CURLOPT_HTTP_VERSION =&gt; CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST =&gt; "GET",
CURLOPT_HTTPHEADER =&gt; array(
"key:API Key Mu Disini"
),
));
$response = curl_exec($curl);
$err = curl_error($curl);
echo "
&lt;div class= \"form-group\"&gt;
&lt;label for=\"provinsi\"&gt;Provinsi Tujuan &lt;/label&gt;
&lt;select class=\"form-control\" name='provinsi' id='provinsi'&gt;";
echo "&lt;option&gt;Pilih Provinsi Tujuan&lt;/option&gt;";
$data = json_decode($response, true);
for ($i=0; $i &lt; count($data['rajaongkir']['results']); $i++) {
echo "&lt;option value='".$data['rajaongkir']['results'][$i]['province_id']."'&gt;".$data['rajaongkir']['results'][$i]['province']."&lt;/option&gt;";
}
echo "&lt;/select&gt;
&lt;/div&gt;";
//Get Data Provinsi
?&gt;
&lt;div class="form-group"&gt;
&lt;label for="kabupaten"&gt;Kota/Kabupaten Tujuan&lt;/label&gt;&lt;br&gt;
&lt;select class="form-control" id="kabupaten" name="kabupaten"&gt;&lt;/select&gt;
&lt;/div&gt;
&lt;div class="form-group"&gt;
&lt;label for="kurir"&gt;Kurir&lt;/label&gt;&lt;br&gt;
&lt;select class="form-control" id="kurir" name="kurir"&gt;
&lt;option value="jne"&gt;JNE&lt;/option&gt;
&lt;option value="tiki"&gt;TIKI&lt;/option&gt;
&lt;option value="pos"&gt;POS INDONESIA&lt;/option&gt;
&lt;/select&gt;
&lt;/div&gt;
&lt;div class="form-group"&gt;
&lt;label for="berat"&gt;Berat (gram)&lt;/label&gt;&lt;br&gt;
&lt;input class="form-control" id="berat" type="text" name="berat" value="500" /&gt;
&lt;/div&gt;
&lt;button class="btn btn-success" id="cek" type="submit" name="button"&gt;Cek Ongkir&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="col-md-8"&gt;
&lt;div class="panel panel-success"&gt;
&lt;div class="panel-heading"&gt;
&lt;h3 class="panel-title"&gt;Hasil&lt;/h3&gt;
&lt;/div&gt;
&lt;div class="panel-body"&gt;
&lt;ol&gt;
&lt;div id="ongkir"&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;footer&gt;
&lt;div class="row"&gt;
&lt;div class="col-md-4"&gt;
&lt;p class="text-center"&gt;Copyright © 2018 Rajaongkir&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/footer&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/body&gt;
</html> <script type="text/javascript">
$(document).ready(function(){
$('#provinsi').change(function(){
//Mengambil value dari option select provinsi kemudian parameternya dikirim menggunakan ajax
var prov = $('#provinsi').val();
$.ajax({
type : 'GET',
url : 'http://localhost/royproweb/cek_kabupaten.php',
data : 'prov_id=' + prov,
success: function (data) {
//jika data berhasil didapatkan, tampilkan ke dalam option select kabupaten
$("#kabupaten").html(data);
}
});
});
$("#cek").click(function(){
//Mengambil value dari option select provinsi asal, kabupaten, kurir, berat kemudian parameternya dikirim menggunakan ajax
var asal = $('#asal').val();
var kab = $('#kabupaten').val();
var kurir = $('#kurir').val();
var berat = $('#berat').val();
$.ajax({
type : 'POST',
url : 'http://localhost/royproweb/cek_ongkir.php',
data : {'kab_id' : kab, 'kurir' : kurir, 'asal' : asal, 'berat' : berat},
success: function (data) {
//jika data berhasil didapatkan, tampilkan ke dalam element div ongkir
$("#ongkir").html(data);
}
});
});
});
</script> </pre>
cek_kabupaten.php :
<pre><?php
$provinsi_id = $_GET['prov_id'];
$curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => "http://api.rajaongkir.com/starter/city?province=$provinsi_id", CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "GET", CURLOPT_HTTPHEADER => array( "key:API Key Mu Disini" ), ));
$response = curl_exec($curl); $err = curl_error($curl);
curl_close($curl);
if ($err) { echo "cURL Error #:" . $err; } else { //echo $response; }
$data = json_decode($response, true); for ($i=0; $i < count($data['rajaongkir']['results']); $i++) { echo "<option value='".$data['rajaongkir']['results'][$i]['city_id']."'>".$data['rajaongkir']['results'][$i]['city_name']."</option>"; }
?> </pre>
cek_ongkir.php : <pre><?php $asal = $_POST['asal']; $id_kabupaten = $_POST['kab_id']; $kurir = $_POST['kurir']; $berat = $_POST['berat'];
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL =&gt; "http://api.rajaongkir.com/starter/cost",
CURLOPT_RETURNTRANSFER =&gt; true,
CURLOPT_ENCODING =&gt; "",
CURLOPT_MAXREDIRS =&gt; 10,
CURLOPT_TIMEOUT =&gt; 30,
CURLOPT_HTTP_VERSION =&gt; CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST =&gt; "POST",
CURLOPT_POSTFIELDS =&gt; "origin=".$asal."&destination=".$id_kabupaten."&weight=".$berat."&courier=".$kurir."",
CURLOPT_HTTPHEADER =&gt; array(
"content-type: application/x-www-form-urlencoded",
"key:API Key Mu Disini"
),
));
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
$data = json_decode($response, true);
}
?&gt;
&lt;?php echo $data['rajaongkir']['origin_details']['city_name'];?&gt; ke &lt;?php echo $data['rajaongkir']['destination_details']['city_name'];?&gt; @&lt;?php echo $berat;?&gt;gram Kurir : &lt;?php echo strtoupper($kurir); ?&gt;
&lt;?php
for ($k=0; $k &lt; count($data['rajaongkir']['results']); $k++) {
?&gt;
&lt;div title="&lt;?php echo strtoupper($data['rajaongkir']['results'][$k]['name']);?&gt;" style="padding:10px"&gt;
&lt;table class="table table-striped"&gt;
&lt;tr&gt;
&lt;th&gt;No.&lt;/th&gt;
&lt;th&gt;Jenis Layanan&lt;/th&gt;
&lt;th&gt;ETD&lt;/th&gt;
&lt;th&gt;Tarif&lt;/th&gt;
&lt;/tr&gt;
&lt;?php
for ($l=0; $l &lt; count($data['rajaongkir']['results'][$k]['costs']); $l++) {
?&gt;
&lt;tr&gt;
&lt;td&gt;&lt;?php echo $l+1;?&gt;&lt;/td&gt;
&lt;td&gt;
&lt;div style="font:bold 16px Arial"&gt;&lt;?php echo $data['rajaongkir']['results'][$k]['costs'][$l]['service'];?&gt;&lt;/div&gt;
&lt;div style="font:normal 11px Arial"&gt;&lt;?php echo $data['rajaongkir']['results'][$k]['costs'][$l]['description'];?&gt;&lt;/div&gt;
&lt;/td&gt;
&lt;td align="center"&gt;&nbsp;&lt;?php echo $data['rajaongkir']['results'][$k]['costs'][$l]['cost'][0]['etd'];?&gt; days&lt;/td&gt;
&lt;td align="right"&gt;&lt;?php echo number_format($data['rajaongkir']['results'][$k]['costs'][$l]['cost'][0]['value']);?&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;?php
}
?&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;?php
}
?&gt;
</pre>