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>

avatar mboh
@mboh

42 Kontribusi 6 Poin

Diperbarui 5 tahun yang lalu

4 Jawaban:

kalo ane liat respon data dari ajax, berupa json. tangkap aja data cost * total barang

avatar dianarifr
@dianarifr

642 Kontribusi 316 Poin

Dipost 5 tahun yang lalu

menangkap cost yang ada di cek_ongkir.php sih bisa, tapi menangkap cost dari ajax gimana?

avatar mboh
@mboh

42 Kontribusi 6 Poin

Dipost 5 tahun yang lalu

isi "data" dari respon ajax gmn gan? coba ss

avatar dianarifr
@dianarifr

642 Kontribusi 316 Poin

Dipost 5 tahun yang lalu

index.php : <pre> &lt;!DOCTYPE html&gt; &lt;html lang="en" dir="ltr"&gt; &lt;head&gt; &lt;meta charset="utf-8"&gt; &lt;title&gt;Raja ongkir&lt;/title&gt; &lt;script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"&gt;&lt;/script&gt; &lt;link rel="stylesheet" href="assets/css/bootstrap.min.css"&gt; &lt;!-- &lt;link rel="stylesheet" href="assets/css/bootstrap.css"&gt; --&gt; &lt;/head&gt; &lt;body&gt; &lt;br&gt; &lt;div class="container"&gt; &lt;img src="assets/images/logo.png" alt="logo"&gt; &lt;br&gt;&lt;br&gt;&lt;br&gt; &lt;div class="row"&gt; &lt;div class="col-md-4"&gt; &lt;div class="panel panel-success"&gt; &lt;div class="panel-heading"&gt; &lt;h3 class="panel-title"&gt;Cek Ongkos Kirim&lt;/h3&gt; &lt;/div&gt; &lt;div class="panel-body"&gt; &lt;div&gt; &lt;?php //Get Data Kabupaten $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL =&gt; "http://api.rajaongkir.com/starter/city", 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);

								curl_close($curl);
								echo &quot;
								&amp;lt;div class= \&quot;form-group\&quot;&amp;gt;
								&amp;lt;label for=\&quot;asal\&quot;&amp;gt;Kota/Kabupaten Asal &amp;lt;/label&amp;gt;
								&amp;lt;select class=\&quot;form-control\&quot; name=&#039;asal&#039; id=&#039;asal&#039;&amp;gt;&quot;;
								echo &quot;&amp;lt;option&amp;gt;Pilih Kota Asal&amp;lt;/option&amp;gt;&quot;;
								$data = json_decode($response, true);
								for ($i=0; $i &amp;lt; count($data[&#039;rajaongkir&#039;][&#039;results&#039;]); $i++) {
									echo &quot;&amp;lt;option value=&#039;&quot;.$data[&#039;rajaongkir&#039;][&#039;results&#039;][$i][&#039;city_id&#039;].&quot;&#039;&amp;gt;&quot;.$data[&#039;rajaongkir&#039;][&#039;results&#039;][$i][&#039;city_name&#039;].&quot;&amp;lt;/option&amp;gt;&quot;;
								}
								echo &quot;&amp;lt;/select&amp;gt;
								&amp;lt;/div&amp;gt;&quot;;
								//Get Data Kabupaten
								//-----------------------------------------------------------------------------

								//Get Data Provinsi
								$curl = curl_init();

								curl_setopt_array($curl, array(
									CURLOPT_URL =&amp;gt; &quot;http://api.rajaongkir.com/starter/province&quot;,
									CURLOPT_RETURNTRANSFER =&amp;gt; true,
									CURLOPT_ENCODING =&amp;gt; &quot;&quot;,
									CURLOPT_MAXREDIRS =&amp;gt; 10,
									CURLOPT_TIMEOUT =&amp;gt; 30,
									CURLOPT_HTTP_VERSION =&amp;gt; CURL_HTTP_VERSION_1_1,
									CURLOPT_CUSTOMREQUEST =&amp;gt; &quot;GET&quot;,
									CURLOPT_HTTPHEADER =&amp;gt; array(
									&quot;key:API Key Mu Disini&quot;
									),
									));

									$response = curl_exec($curl);
									$err = curl_error($curl);

									echo &quot;
									&amp;lt;div class= \&quot;form-group\&quot;&amp;gt;
										&amp;lt;label for=\&quot;provinsi\&quot;&amp;gt;Provinsi Tujuan &amp;lt;/label&amp;gt;
										&amp;lt;select class=\&quot;form-control\&quot; name=&#039;provinsi&#039; id=&#039;provinsi&#039;&amp;gt;&quot;;
											echo &quot;&amp;lt;option&amp;gt;Pilih Provinsi Tujuan&amp;lt;/option&amp;gt;&quot;;
											$data = json_decode($response, true);
											for ($i=0; $i &amp;lt; count($data[&#039;rajaongkir&#039;][&#039;results&#039;]); $i++) {
												echo &quot;&amp;lt;option value=&#039;&quot;.$data[&#039;rajaongkir&#039;][&#039;results&#039;][$i][&#039;province_id&#039;].&quot;&#039;&amp;gt;&quot;.$data[&#039;rajaongkir&#039;][&#039;results&#039;][$i][&#039;province&#039;].&quot;&amp;lt;/option&amp;gt;&quot;;
											}
											echo &quot;&amp;lt;/select&amp;gt;
										&amp;lt;/div&amp;gt;&quot;;
										//Get Data Provinsi
										?&amp;gt;

										&amp;lt;div class=&quot;form-group&quot;&amp;gt;
											&amp;lt;label for=&quot;kabupaten&quot;&amp;gt;Kota/Kabupaten Tujuan&amp;lt;/label&amp;gt;&amp;lt;br&amp;gt;
											&amp;lt;select class=&quot;form-control&quot; id=&quot;kabupaten&quot; name=&quot;kabupaten&quot;&amp;gt;&amp;lt;/select&amp;gt;
										&amp;lt;/div&amp;gt;
										&amp;lt;div class=&quot;form-group&quot;&amp;gt;
											&amp;lt;label for=&quot;kurir&quot;&amp;gt;Kurir&amp;lt;/label&amp;gt;&amp;lt;br&amp;gt;
											&amp;lt;select class=&quot;form-control&quot; id=&quot;kurir&quot; name=&quot;kurir&quot;&amp;gt;
												&amp;lt;option value=&quot;jne&quot;&amp;gt;JNE&amp;lt;/option&amp;gt;
												&amp;lt;option value=&quot;tiki&quot;&amp;gt;TIKI&amp;lt;/option&amp;gt;
												&amp;lt;option value=&quot;pos&quot;&amp;gt;POS INDONESIA&amp;lt;/option&amp;gt;
											&amp;lt;/select&amp;gt;
										&amp;lt;/div&amp;gt;
										&amp;lt;div class=&quot;form-group&quot;&amp;gt;
											&amp;lt;label for=&quot;berat&quot;&amp;gt;Berat (gram)&amp;lt;/label&amp;gt;&amp;lt;br&amp;gt;
											&amp;lt;input class=&quot;form-control&quot; id=&quot;berat&quot; type=&quot;text&quot; name=&quot;berat&quot; value=&quot;500&quot; /&amp;gt;
										&amp;lt;/div&amp;gt;
										&amp;lt;button class=&quot;btn btn-success&quot; id=&quot;cek&quot; type=&quot;submit&quot; name=&quot;button&quot;&amp;gt;Cek Ongkir&amp;lt;/button&amp;gt;
									&amp;lt;/div&amp;gt;
							&amp;lt;/div&amp;gt;
						&amp;lt;/div&amp;gt;
					&amp;lt;/div&amp;gt;
					&amp;lt;div class=&quot;col-md-8&quot;&amp;gt;
						&amp;lt;div class=&quot;panel panel-success&quot;&amp;gt;
							&amp;lt;div class=&quot;panel-heading&quot;&amp;gt;
								&amp;lt;h3 class=&quot;panel-title&quot;&amp;gt;Hasil&amp;lt;/h3&amp;gt;
							&amp;lt;/div&amp;gt;
							&amp;lt;div class=&quot;panel-body&quot;&amp;gt;
								&amp;lt;ol&amp;gt;
									&amp;lt;div id=&quot;ongkir&quot;&amp;gt;&amp;lt;/div&amp;gt;
								&amp;lt;/div&amp;gt;
							&amp;lt;/ol&amp;gt;
						&amp;lt;/div&amp;gt;
					&amp;lt;/div&amp;gt;
		&amp;lt;/div&amp;gt;
		&amp;lt;footer&amp;gt;
			&amp;lt;div class=&quot;row&quot;&amp;gt;
				&amp;lt;div class=&quot;col-md-4&quot;&amp;gt;
					&amp;lt;p class=&quot;text-center&quot;&amp;gt;Copyright © 2018 Rajaongkir&amp;lt;/p&amp;gt;
				&amp;lt;/div&amp;gt;
			&amp;lt;/div&amp;gt;

		&amp;lt;/footer&amp;gt;
		&amp;lt;/div&amp;gt;
	&amp;lt;/div&amp;gt;
&amp;lt;/body&amp;gt;

&lt;/html&gt; &lt;script type="text/javascript"&gt;

$(document).ready(function(){
	$(&#039;#provinsi&#039;).change(function(){

		//Mengambil value dari option select provinsi kemudian parameternya dikirim menggunakan ajax
		var prov = $(&#039;#provinsi&#039;).val();

  		$.ajax({
        	type : &#039;GET&#039;,
       		url : &#039;http://localhost/royproweb/cek_kabupaten.php&#039;,
        	data :  &#039;prov_id=&#039; + prov,
				success: function (data) {

				//jika data berhasil didapatkan, tampilkan ke dalam option select kabupaten
				$(&quot;#kabupaten&quot;).html(data);
			}
      	});
	});

	$(&quot;#cek&quot;).click(function(){
		//Mengambil value dari option select provinsi asal, kabupaten, kurir, berat kemudian parameternya dikirim menggunakan ajax
		var asal = $(&#039;#asal&#039;).val();
		var kab = $(&#039;#kabupaten&#039;).val();
		var kurir = $(&#039;#kurir&#039;).val();
		var berat = $(&#039;#berat&#039;).val();

  		$.ajax({
        	type : &#039;POST&#039;,
       		url : &#039;http://localhost/royproweb/cek_ongkir.php&#039;,
        	data :  {&#039;kab_id&#039; : kab, &#039;kurir&#039; : kurir, &#039;asal&#039; : asal, &#039;berat&#039; : berat},
				success: function (data) {

				//jika data berhasil didapatkan, tampilkan ke dalam element div ongkir
				$(&quot;#ongkir&quot;).html(data);
			}
      	});
	});
});

&lt;/script&gt; </pre>

cek_kabupaten.php :

<pre>&lt;?php

$provinsi_id = $_GET['prov_id'];

$curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL =&gt; "http://api.rajaongkir.com/starter/city?province=$provinsi_id", 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);

curl_close($curl);

if ($err) { echo "cURL Error #:" . $err; } else { //echo $response; }

$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;"; }

?&gt; </pre>

cek_ongkir.php : <pre>&lt;?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 =&amp;gt; &quot;http://api.rajaongkir.com/starter/cost&quot;,
  CURLOPT_RETURNTRANSFER =&amp;gt; true,
  CURLOPT_ENCODING =&amp;gt; &quot;&quot;,
  CURLOPT_MAXREDIRS =&amp;gt; 10,
  CURLOPT_TIMEOUT =&amp;gt; 30,
  CURLOPT_HTTP_VERSION =&amp;gt; CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST =&amp;gt; &quot;POST&quot;,
  CURLOPT_POSTFIELDS =&amp;gt; &quot;origin=&quot;.$asal.&quot;&amp;destination=&quot;.$id_kabupaten.&quot;&amp;weight=&quot;.$berat.&quot;&amp;courier=&quot;.$kurir.&quot;&quot;,
  CURLOPT_HTTPHEADER =&amp;gt; array(
    &quot;content-type: application/x-www-form-urlencoded&quot;,
    &quot;key:API Key Mu Disini&quot;
  ),
));
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
  echo &quot;cURL Error #:&quot; . $err;
} else {
  $data = json_decode($response, true);
}
?&amp;gt;
&amp;lt;?php echo $data[&#039;rajaongkir&#039;][&#039;origin_details&#039;][&#039;city_name&#039;];?&amp;gt; ke &amp;lt;?php echo $data[&#039;rajaongkir&#039;][&#039;destination_details&#039;][&#039;city_name&#039;];?&amp;gt; @&amp;lt;?php echo $berat;?&amp;gt;gram Kurir : &amp;lt;?php echo strtoupper($kurir); ?&amp;gt;
&amp;lt;?php
 for ($k=0; $k &amp;lt; count($data[&#039;rajaongkir&#039;][&#039;results&#039;]); $k++) {
?&amp;gt;
	 &amp;lt;div title=&quot;&amp;lt;?php echo strtoupper($data[&#039;rajaongkir&#039;][&#039;results&#039;][$k][&#039;name&#039;]);?&amp;gt;&quot; style=&quot;padding:10px&quot;&amp;gt;
		 &amp;lt;table class=&quot;table table-striped&quot;&amp;gt;
			 &amp;lt;tr&amp;gt;
				 &amp;lt;th&amp;gt;No.&amp;lt;/th&amp;gt;
				 &amp;lt;th&amp;gt;Jenis Layanan&amp;lt;/th&amp;gt;
				 &amp;lt;th&amp;gt;ETD&amp;lt;/th&amp;gt;
				 &amp;lt;th&amp;gt;Tarif&amp;lt;/th&amp;gt;
			 &amp;lt;/tr&amp;gt;
			 &amp;lt;?php
			 for ($l=0; $l &amp;lt; count($data[&#039;rajaongkir&#039;][&#039;results&#039;][$k][&#039;costs&#039;]); $l++) {
			 ?&amp;gt;
			 &amp;lt;tr&amp;gt;
				 &amp;lt;td&amp;gt;&amp;lt;?php echo $l+1;?&amp;gt;&amp;lt;/td&amp;gt;
				 &amp;lt;td&amp;gt;
					 &amp;lt;div style=&quot;font:bold 16px Arial&quot;&amp;gt;&amp;lt;?php echo $data[&#039;rajaongkir&#039;][&#039;results&#039;][$k][&#039;costs&#039;][$l][&#039;service&#039;];?&amp;gt;&amp;lt;/div&amp;gt;
					 &amp;lt;div style=&quot;font:normal 11px Arial&quot;&amp;gt;&amp;lt;?php echo $data[&#039;rajaongkir&#039;][&#039;results&#039;][$k][&#039;costs&#039;][$l][&#039;description&#039;];?&amp;gt;&amp;lt;/div&amp;gt;
				 &amp;lt;/td&amp;gt;
				 &amp;lt;td align=&quot;center&quot;&amp;gt;&amp;nbsp;&amp;lt;?php echo $data[&#039;rajaongkir&#039;][&#039;results&#039;][$k][&#039;costs&#039;][$l][&#039;cost&#039;][0][&#039;etd&#039;];?&amp;gt; days&amp;lt;/td&amp;gt;
				 &amp;lt;td align=&quot;right&quot;&amp;gt;&amp;lt;?php echo number_format($data[&#039;rajaongkir&#039;][&#039;results&#039;][$k][&#039;costs&#039;][$l][&#039;cost&#039;][0][&#039;value&#039;]);?&amp;gt;&amp;lt;/td&amp;gt;
			 &amp;lt;/tr&amp;gt;
			 &amp;lt;?php
			 }
			 ?&amp;gt;
		 &amp;lt;/table&amp;gt;
	 &amp;lt;/div&amp;gt;
 &amp;lt;?php
 }
 ?&amp;gt;

</pre>

avatar mboh
@mboh

42 Kontribusi 6 Poin

Dipost 5 tahun yang lalu

Login untuk ikut Jawaban