Diskon 80% terbatas! Masukkan kupon "merdeka" di kelas apa saja

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 6 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 6 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 6 tahun yang lalu

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

avatar dianarifr
@dianarifr

642 Kontribusi 316 Poin

Dipost 6 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 6 tahun yang lalu

Login untuk ikut Jawaban