Tujuan:
Pada pertemuan ini, siswa akan memperbaiki dan/atau memperbaharui pembuatan halaman
beranda untuk toko online mini penjualan peralatan dan bahan pertanian yang sudah di upload di
web hos ng.
Halaman Beranda :
Sebelum melanjutkan ke pembuatan Admin ada beberapa perubahan pada halaman beranda website toko
online sebagaimana berikut :
Tambahkan syntax tersebut javascript agar kita dapat membuat tampilan berupa format uang (currency)
rupiah.
tambahkan sebuah fungsi pada proses reload, agar ke ka pelanggan sudah memilih barang dan menekan
(baik sengara maupun dak sengaja) refresh/reload/F5, tampilan di bagian checkout dak berubah.
document.addEventListener('DOMContentLoaded', function () {
let keranjangDariStorage = sessionStorage.getItem('keranjangBelanja');
keranjang = JSON.parse(keranjangDariStorage);
updateKeranjang(); // Perbarui tampilan keranjang setelah memuat data
});
Terakhir ubah syntax pada fungsi updateKeranjang() untuk memberikan format rupiah serta penambahan
jumlah atau pengurangan jumlah pada masing-masing item barang. Jadi pelanggan dapat mengurangi
jumlah pembelian atau bahkan menghapus item barang yang akan dibelinya.
function updateKeranjang(){
const daftarKeranjang = document.getElementById('daftar-keranjang');
const totalBelanjaElem = document.getElementById('total-belanja');
daftarKeranjang.innerHTML = '';
let total = 0;
keranjang.forEach((produk, index) => {
const item = document.createElement('li');
item.innerHTML = `
# ${produk.nama} |
<button class="btn" onclick="kurangiJumlah(${index})">-</button>
<span id="jumlahItem${index}">${produk.jumlah}</span>
<button class="btn" onclick="tambahJumlah(${index})">+</button> |
${rupiah.format(produk.harga)} |
${rupiah.format(produk.jumlah * produk.harga)} ||
`;
daftarKeranjang.appendChild(item);
total += (produk.jumlah * produk.harga);
});
totalBelanjaElem.textContent = `${rupiah.format(total)}`;
//masukkan ke dalam session storage
sessionStorage.setItem('keranjangBelanja', JSON.stringify(keranjang));
}
Tambahkan fungsi berikut untuk menyesuaikan dengan tombol – dan + yang sudah disematkan pada
tampilan checkout belanja.
function tambahJumlah(index) {
keranjang[index].jumlah++;
updateKeranjang();
}
function kurangiJumlah(index) {
if (keranjang[index].jumlah > 1) {
keranjang[index].jumlah--;
} else {
// Jika jumlah sudah 1, hapus barang dari keranjang
keranjang.splice(index, 1);
}
updateKeranjang();
}
<label for="desa">Provinsi:</label>
<select name="provinsi" id="provinsi" required>
<option> -- Pilih Provinsi -- </option>
</select><br>
<label for="kota">Kota/Kabupaten:</label>
<select name="kota" id="kota" required>
<option> -- Pilih Kota -- </option>
</select><br>
<label for="kecamatan">Kecamatan:</label>
<select name="kecamatan" id="kecamatan" required>
<option> -- Pilih Kecamatan -- </option>
</select>
<label for="desa">Desa:</label>
<input type="text" id="desa" name="desa" required><br>
<label for="berat">Berat:</label>
<input type="number" id="berat" name="berat" required><br>
<label for="ekspedisi">Ekspedisi:</label>
<select name="ekspedisi" id="ekspedisi" required>
<option> -- Pilih Paket -- </option>
<option value="jne">JNE</option>
<option value="pos">POS Indonesia</option>
<option value="tiki">TIKI</option>
</select><br>
<label for="paket">Paket:</label>
<select name="paket" id="paket" required>
<option> -- Pilih Paket -- </option>
</select><br>
<label for="ongkir">Kurir:</label>
<input type="text" id="kurir" name="kurir" required readonly><br>
3. Menuju ke menu cost > Province > contoh request > PHP
Note : itu pada bagian CURLOPT-URL, hilangkan ?id=12 nya ya. Yang pada bagian akhir itu.
6. Ubah pada bagian akhir seper berikut :
echo $response;
menjadi :
//echo $response;
$data = json_decode($response);
7. Oiya jangan lupa beri penutup tag php pada bagian akhir copyan syntax dari rajaongkir tadi ya.
Yang kayak gini ya ?>.
8. Ubah atau masukkan API key yang ada di panel rajaongkir ke key.
=>
9. Tambahkan looping foreach untuk menampilkan data provinsi yang sudah d h prequest dari rajaongkir
dalam bentuk php.
<label for="desa">Provinsi:</label>
<select name="provinsi" id="provinsi" required>
<option> -- Pilih Provinsi -- </option>
<?php
forEach ($data->rajaongkir->results as $provinsi){
echo '<option value="'.$provinsi->province_id.'">'.$provinsi-
>province.'</option>';
}
?>
</select><br>
10. Terakhir rename file checkout.html menjadi checkout.php. Jangan lupa sesuaikan pula link file yang ada
index.php. yang ini ya
Berikutnya kita akan manfaatkan rajaongkir untuk menampilkan data kota/kabupaten, sesuai dengan
data provinsi yang dipilih sebelumnya.
1. Masuk ke web rajaongkir, lalu menu Integrasi > Dokumentasi API > Starter > City > Contoh request
> PHP
2. Copy to Clipboard
3. Kembali ke File Manager di infinity, dan buat sebuah file baru, dan beri nama carikota.php.
4. Paste di file baru tersebut hasil copy an tadi.
5. Buat variabel untuk menampung data provinsi, lalu masukkan ke dalam CURLOPT_URL. Seper
berikut :
6. Jangan lupa masukkan juga API key nya.
7. Ubah echo $response, menjadi seper berikut :
Selanjutnya kita akan dapatkan data kecamatan menyesuaikan dari data provinsi dan data kota yang sudah
di pilih sebelumnya. Langkah-langkahnya sebagai berikut :
1. Dikarenakan data kecamatan dak disediakan oleh rajaongkir, maka kita akan menggunakan database
yang lain. Kita lakukan pencarian pada google, ke k saja cahyadsn rajaongkir. Lalu klik link yang
pertama.
2. Klik menu Code > Download ZIP
3. Ekstrak hasil download tersebut, yang nan akan kita ambil file .sql nya.
4. Masuk ke phpmyadmin database website untuk melakukan impor ng mysql. Menu Impor > Choose file
> pilih file database (.sql) yang akan kita impor > Open. Kemudian klik kirim/go.
Jika berhasil akan tampil seper berikut :
Untuk menentukan desa akan kita kembangkan nan nya lebih lanjut, karena harus membuat
tabel/databasenya terlebih dahulu.
Berikutnya kita akan menampilkan pada bagian paket berdasarkan pilihan ekspedisi yang kita tentukan.
Langkah-langkahnya sebagai berikut :
1. Ubah pada bagian combo ekspedisi dengan menambahkan method onchange caripaket, seper
berikut :
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://api.rajaongkir.com/starter/cost",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS =>
"origin=349&destination=".$kota."&weight=".$berat."&courier=".$kurir,
CURLOPT_HTTPHEADER => array(
"content-type: application/x-www-form-urlencoded",
"key: 0d06c4041826c0806b8759d573432841"
),
));
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
//echo $response;
$data = json_decode($response);
}
foreach($data->rajaongkir->results[0]->costs as $paket){
echo '<option value="'.$kurir.':'.$paket->service.':'.$paket->cost[0]-
>value.'"> Paket: '.$paket->service.'; Ongkos: '.$paket->cost[0]->value.';
Est: '.$paket->cost[0]->etd.' hari </option>';
}
?>
4. Selanjutnya kita berikan method pada combo paket, agar ke ka customer memilih paket, akan
terkonfirmasi paket yang dipilih ke textbox Kurir dan ongkos kirim ke textbox Ongkos Kirim.
Manfaatkan fungsi sama pada modul sebelumnya untuk memformat tampilan currency (rupiah).
1. Tambahkan script berikut pada awal javascript.
Tujuan:
Pada pertemuan ini, siswa akan memperbaiki dan/atau memperbaharui halaman invoice serta
melakukan validasi user/pelanggan ke ka melaksanakan proses pembelian pada toko online mini
penjualan peralatan dan bahan pertanian yang sudah di upload di web hos ng.
Pada modul ini, kita akan memproses data yang di input di dalam form pada halaman checkout ke dalam
halaman invoice. Ada 2 perubahan yang akan kita rombak dalam halaman checkout dan invoice ini.
1. Pengiriman data yang sebelumnya menggunakan session storage di javascript, akan kita ubah
menggunakan PHP.
2. Nan nya sebelum masuk ke halaman checkout akan kita cek terlebih dahulu perihal login dari
pelanggan, jika pelanggan belum login, maka akan kita arahkan terlebih dahulu ke halaman login.
<?php
$nama = $_POST["nama"];
$alamat = $_POST["alamat"];
$rt = $_POST["rt"];
$rw = $_POST["rw"];
$desa = $_POST["desa"];
$kecamatan = $_POST["kecamatan"];
$kota = $_POST["kota"];
$provinsi = $_POST["provinsi"];
$kodepos = $_POST["kode-pos"];
$kurir = $_POST["kurir"];
$ongkir = $_POST["ongkir"];
$email = $_POST["email"];
$telepon = $_POST["telepon"];
$bank = $_POST["bank"];
$norek = $_POST["nomor-rekening"];
$namaRekening = $_POST["nama-rekening"];
$cabang = $_POST["cabang"];
$cabang = $_POST["cabang"];
//pergunakan switch case untuk menentukan transfer dengan nama bank yang sama
switch ($bank) {
case 'bca':
$namaBank = 'Bank BCA';
$rekeningInfo = 'Bank BCA : 238 080 156 4';
break;
case 'bni':
$namaBank = 'Bank BNI';
$rekeningInfo = 'Bank BNI : 9871 2776 143';
break;
case 'mandiri':
$namaBank = 'Bank Mandiri';
$rekeningInfo = 'Bank Mandiri : 231 412 138 753 2';
break;
case 'bri':
$namaBank = 'Bank BRI';
$rekeningInfo = 'Bank BRI : 0069-01-076521-56-0';
break;
default:
$namaBank = 'Lainnya';
$rekeningInfo = 'Bank Lain : Nomor Rekening Lain';
}
?>
7. Masukkan seluruh informasi tersebut ke dalam tampilan di invoice, seper berikut :
Dan script lengkapnya adalah sebagai berikut :
<h3>Informasi Pengiriman</h3>
<table class="datapem">
<tr >
<td width="150px">Nama Pelanggan</td>
<td>:</td>
<td width="450px"><?php echo $nama; ?></td>
</tr>
<tr>
<td>Alamat Pengiriman</td>
<td>:</td>
<td><?php echo $alamat.' RT/RW '.$rt.'/'.$rw.' Desa '.$desa.' Kecamatan
'.$kecamatan.' Kota/Kab '.$kota.' Provinsi '.$provinsi.'
Kode Pos '.$kodepos; ?></td>
</tr>
<tr>
<td>Email</td>
<td>:</td>
<td><?php echo $email; ?></td>
</tr>
<tr>
<td>No. Telepon</td>
<td>:</td>
<td><?php echo $telepon; ?></td>
</tr>
</table>
<br/>
<h3>Data Pembayaran</h3>
<table class="datapem">
<tr>
<td width="150px" >Nama Lengkap</td>
<td>:</td>
<td width="450px"><?php echo $namaRekening ?></td>
</tr>
<tr>
<td>Nomor Rekening</td><td>:</td>
<td><?php echo $norek; ?></td>
</tr>
<tr>
<td>Bank</td>
<td>:</td>
<td><?php echo $namaBank; ?>; Kantor Cabang: <?php echo $cabang; ?></td>
</tr>
</table>
8. Ubah pula pada tampilan bagian ongkos kirim.
9. Berikutnya kita hapus javascript yang sudah dak dibutuhkan.
Script berikut yang kita hapus.
// Mengambil data dari sessionStorage
const namaPelanggan = JSON.parse(sessionStorage.getItem('namaPelanggan'));
const alamat = JSON.parse(sessionStorage.getItem('alamat'));
const rt = JSON.parse(sessionStorage.getItem('rt'));
const rw = JSON.parse(sessionStorage.getItem('rw'));
const desa = JSON.parse(sessionStorage.getItem('desa'));
const kecamatan = JSON.parse(sessionStorage.getItem('kecamatan'));
const kota = JSON.parse(sessionStorage.getItem('kota'));
const provinsi = JSON.parse(sessionStorage.getItem('provinsi'));
const kodepos = JSON.parse(sessionStorage.getItem('kodepos'));
const email = JSON.parse(sessionStorage.getItem('email'));
const telepon = JSON.parse(sessionStorage.getItem('telepon'));
const kurir = JSON.parse(sessionStorage.getItem('kurir'));
const ongkir = JSON.parse(sessionStorage.getItem('ongkir'));
const bank = JSON.parse(sessionStorage.getItem('bank'));
let rekeningInfo; // Variabel untuk menyimpan informasi rekening
let namaBank;
16. Kita akan memanfaatkan tabel tb_ro_ci es, tb_ro_provinces dan tb_ro_subdistricts yang sudah kita
import sebelumnya.
17. Kita include kan dulu file dbkonek.php. Ke kkan script berikut pada bagian awal PHP ya:
include 'dbkonek.php';
18. Data Kecamatan dahulu. Tambahkan script berikut untuk mengambil data nama kecamatan dari tabel
tb_ro_subdistrics.
//ambil data kecamatan
$sqlkec = $conn->prepare("SELECT * FROM tb_ro_subdistricts WHERE subdistrict_id
= ?");
$sqlkec->bind_param("s", $kecamatan);
$sqlkec->execute();
$namakec = $sqlkec->get_result()->fetch_assoc();
$namakecamatan = $namakec["subdistrict_name"];
$sqlkec->close();
19. Selanjutnya Data Kota/Kabupaten. Tambahkan script berikut untuk mengambil nama kota/kabupaten
dari tabel tb_ro_ci es.
20. Berikutnya Data Provinsi. Tambahkan script berikut untuk mengambil nama Provinsi dari tabel
tb_ro_provinces.
1. Kita ubah terlebih dahulu tabel pelanggan pada database, yaitu dengan menambahkan dua kolom,
username dan password.
Buka database > pilih tabel Pelanggan > Tambahkan 2 kolom > setelah nama_pelanggan > kirim
include 'dbkonek.php';
Untuk yang di file carikota.php dan carikecamatan.php, dak perlu di ubah ya, karena dak sifatnya
dipanggil, dak langsung di eksekusi seper yang di provinsi.
5. Ubah script pada combo provinsi sebagai berikut :
<option> -- Pilih Provinsi -- </option>
<?php
if($login){
$sqlprov = $conn->query("SELECT * FROM tb_ro_provinces");
while($dataprov = $sqlprov->fetch_assoc()){
$slcprov = $dataprov['province_id'] == $provinsipelanggan ? "selected" : "";
echo '<option value="'.$dataprov['province_id'].'"
'.$slcprov.'>'.$dataprov['province_name'].'</option>';
}
}else{
forEach ($data->rajaongkir->results as $provinsi){
echo '<option value="'.$provinsi->province_id.'">'.$provinsi-
>province.'</option>';
}
}
?>
Fungsinya yaitu apabila dalam kondisi login, maka akan mengambil data dari tabel di database kita
sendiri, yaitu tabel tb_ro_provinces, dan akan terpilih provinsi yang sesuai data pelanggan customer.
Namun jika sebaliknya, yaitu maka akan mengambil data dari rajaongkir.
6. Hal yang sama di berlakukan pada pengambilan data kota/kabupaten, sebagai berikut:
<option> -- Pilih Kota -- </option>
<?php
if($login){
$sqlkota = $conn->query("SELECT * FROM tb_ro_cities WHERE province_id =
'$provinsipelanggan' ");
while($datakota = $sqlkota->fetch_assoc()){
$slckota = $datakota['city_id'] == $kotapelanggan ? "selected" : " ";
echo '<option value="'.$datakota['city_id'].'"
'.$slckota.'>'.$datakota['city_name'].'</option>';
}
}
?>
Ar nya apabila dalam kondisi login maka akan mengambil data sesuai dengan yang ada dalam database
dan data kota/kabupaten yang sesuai dengan data pelanggan customer, yang akan di tampilkan.
7. Hal yang sama di berlakukan pada pengambilan data kecamatan, sebagai berikut :
<option> -- Pilih Kecamatan -- </option>
<?php
if($login){
$sqlkec = $conn->query("SELECT * FROM tb_ro_subdistricts WHERE city_id =
'$kotapelanggan' ");
while($datakec = $sqlkec->fetch_assoc()){
$slckec = $datakec['subdistrict_id'] == $kecamatanpelanggan ? "selected" : " ";
echo '<option value="'.$datakec['subdistrict_id'].'"
'.$slckec.'>'.$datakec['subdistrict_name'].'</option>';
}
}
?>
Kondisi sama dengan kota, apabila login maka yang akan tampil adalah nama kecamatan yang sesuai
dengan data di tabel pelanggan.
Kegunaan script tambahan tersebut adalah juga sebagai konversi dari ID ke nama daerah, misal
province_id 10, maka yang muncul adalah Jawa Tengah.
8. Berikut kita buat sebuah halaman untuk login, yaitu dengan membuat sebuah file login.php
9. Copy saja dari salah satu file yang sudah ada, semisal file invoice.php, dan nan kita ubah pada bagian
content nya. Saya anggap kalian sudah copy file invoice.php dan kalian beri nama login.php ya.
10.Ubah pada beberapa bagian. Yang pertama ubah pada bagian <body> HTML nya, seper berikut :
<body>
<div class="container">
<div class="header">
<div class="menuKiri">
<ul>
<li><a href="#">Tentang Kami</a></li>
<li><a href="#">Mitra Kami</a></li>
<li><a href="#">Mulai Berjualan</a></li>
<li><a href="#">Promo</a></li>
<li><a href="#">Kontak</a></li>
</ul>
</div>
<div class="judulKanan">
<h1 class="judul">Toko Pertanian</h1>
</div>
</div>
<div class="hero"></div>
<div class="content cf" id="cetakke">
<div class="main-invoice">
<h2>LOGIN</h2>
<div class="container-login">
<form id="login-form">
<label for="username">Username:</label>
<input type="text" id="username" name="username"><br><br>
<label for="password">Password:</label>
<input type="password" id="password" name="password"><br><br>
<button class="login">LOG IN</button>
<button type="submit" class="signup"><a href="signup.php">SIGN
UP</a></button>
</form>
<div id="error-message"></div>
</div>
</div>
<div class="sidebar">
<!--Keranjang Belanja-->
<br/><br/>
<div class="keranjang">
<h3></h3>
</div>
</div>
</div>
<div class="footer">
<p class="copyright">Copyright 2023. Toko Pertanian.</p>
</div>
</div>
<script src="script.js"></script>
</body>
#error-message {
color: red;
font-size: 16px;
margin-top: 20px;
margin-bottom: 20px;
}
</style>
12.Untuk menangani data atau proses oten fikasi data pelanggan, berupa username dan password, berikut
proses-proses penyertanya, maka tambahkan script PHP berikut pada bagian awal file login tersebut.
<?php
session_start();
include 'dbkonek.php';
if ($result->num_rows > 0) {
// Ambil data user
$row = $result->fetch_assoc();
$storedHashedPassword = $row["password"];
// Verifikasi password
if (password_verify($password, $storedHashedPassword)) {
// Password cocok, user berhasil login
$_SESSION['pelanggan_id'] = $row["id_pelanggan"];
$_SESSION['nama_pelanggan'] = $row["nama_pelanggan"];
$_SESSION['username'] = $row["username"];
<?php
session_start();
include 'dbkonek.php';
if ($_SERVER["REQUEST_METHOD"] == "POST") {
// Ambil data dari form signup
$nama = $_POST["nama"];
$username = $_POST["username"];
$password = $_POST["password"];
$alamat = $_POST["alamat"];
$rt = $_POST["rt"];
$rw = $_POST["rw"];
$desa = $_POST["desa"];
$kecamatan = $_POST["kecamatan"];
$kota = $_POST["kota"];
$provinsi = $_POST["provinsi"];
$kodepos = $_POST["kode-pos"];
$email = $_POST["email"];
$telepon = $_POST["telepon"];
$bank = $_POST["bank"];
$norek = $_POST["nomor-rekening"];
$namaRekening = $_POST["nama-rekening"];
$cabang = $_POST["cabang"];
// Hash password
// Password akan seperti di enkripsi agar tidak mudah dijebol
$hashedPassword = password_hash($password, PASSWORD_DEFAULT);
if ($sqlpelanggan->execute()) {
echo "<script>alert('Data Berhasil disimpan');</script>";
$sqlpelanggan->close();
// Set session ID dengan ID pelanggan yang baru saja didaftarkan
$_SESSION['pelanggan_id'] = $conn->insert_id;
$_SESSION['nama_pelanggan'] = $nama;
$_SESSION['username'] = $username;
header("Location: checkout.php"); // Sesuaikan dengan halaman setelah daftar
} else {
echo "<script>alert('Mohon Maaf, Data gagal disimpan');</script>";
}
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Toko Pertanian</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<div class="container">
<div class="header">
<div class="menuKiri">
<ul>
<li><a href="#">Tentang Kami</a></li>
<li><a href="#">Mitra Kami</a></li>
<li><a href="#">Mulai Berjualan</a></li>
<li><a href="#">Promo</a></li>
<li><a href="#">Kontak</a></li>
</ul>
</div>
<div class="judulKanan">
<h1 class="judul">Toko Pertanian</h1>
</div>
</div>
<div class="hero"></div>
<div class="content cf">
<div class="main">
<h2>PENDAFTARAN PELANGGAN</h2>
<br><br>
<!--Formulir Pendaftaran-->
<form action="" id="formulir-daftar" method="post">
<h2>Informasi Pengiriman</h2>
<label for="nama">Nama Lengkap:</label>
<input type="text" name="nama" id="nama" required><br>
<label for="username">Username:</label>
<input type="text" name="username" id="username" required><br>
<label for="password">Password:</label>
<input type="password" name="password" id="password"
required><br>
<label for="rt">RT/RW:</label>
<input type="number" id="rt" name="rt" required > /
<input type="number" id="rw" name="rw" required ><br>
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://api.rajaongkir.com/starter/province",
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: 0d06c4041826c0806b8759d573432841"
),
));
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
//echo $response;
$data = json_decode($response);
}
?>
<label for="desa">Provinsi:</label>
<select name="provinsi" id="provinsi" required
onchange="carikota(this.value)">
<option> -- Pilih Provinsi -- </option>
<?php
forEach ($data->rajaongkir->results as $provinsi){
echo '<option value="'.$provinsi-
>province_id.'">'.$provinsi->province.'</option>';
}
?>
</select><br>
<label for="kota">Kota/Kabupaten:</label>
<select name="kota" id="kota" required
onchange="carikecamatan(this.value)">
<option> -- Pilih Kota -- </option>
</select><br>
<label for="kecamatan">Kecamatan:</label>
<select name="kecamatan" id="kecamatan" required>
<option> -- Pilih Kecamatan -- </option>
</select>
<label for="desa">Desa:</label>
<input type="text" id="desa" name="desa" required ><br>
<label for="kode-pos">Kodepos:</label>
<input type="number" id="kode-pos" name="kode-pos" required
><br>
<h2>Informasi Kontak</h2>
<label for="email">Email:</label>
<input type="email" id="email" name="email" required ><br>
</div>
<div class="sidebar">
<h3>Sign Up</h3>
<div class="kategori-pilihan">
</div>
<!-- Awal Mula Keranjang Belanja-->
<br><br>
<div class="keranjang">
</div>
</div>
</div>
<div class="footer">
<p class="copyright">Copyright. 2023. Toko Pertanian</p>
</div>
</div>
<script>
function carikota(id_provinsi){
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById("kota").innerHTML = this.responseText;
}
}
xmlhttp.open("GET", "carikota.php?idp="+id_provinsi, true);
xmlhttp.send();
}
function carikecamatan(id_kota){
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById("kecamatan").innerHTML = this.responseText;
}
}
xmlhttp.open("GET", "carikecamatan.php?idk="+id_kota, true);
xmlhttp.send();
}
</script>
</body>
</html>
17.Oiya kita sesuaikan tampilan dari data yang ada di data pelanggan ke form yang ada d checkout.php ya,
karena ada perubahan pada tabel pelanggan ya, kita masukkan dulu data dari tabel ke variabel agar nan
lebih mudah di aplikasikan, sebagai berikut :
18.Kita pergunakan switch case untuk menentukan op on combo pilihan bank yang terpilih, sebagai
berikut:
<?php
switch ($bank) {
case 'bca':
$slc1 = "selected";
$slc2 = "";
$slc3 = "";
$slc4 = "";
break;
case 'bni':
$slc1 = "";
$slc2 = "selected";
$slc3 = "";
$slc4 = "";
break;
case 'mandiri':
$slc1 = "";
$slc2 = "";
$slc3 = "selected";
$slc4 = "";
break;
case 'bri':
$slc1 = "";
$slc2 = "";
$slc3 = "";
$slc4 = "selected";
break;
default:
$slc1 = "";
$slc2 = "";
$slc3 = "";
$slc4 = "";
}
?>
19.Terapkan ke dalam combo pilihan bank
<option value="bca" <?php echo $slc1; ?>>BCA (Bank Central Asia)</option>
<option value="bni" <?php echo $slc2; ?>>BNI (Bank Negara Indonesia)</option>
<option value="mandiri" <?php echo $slc3; ?>>Mandiri (Bank Mandiri)</option>
<option value="bri" <?php echo $slc4; ?>>BRI (Bank Rakyat Indonesia)</option>
20.Masukkan info bank yang lain ke no rekening, nama rekening dan cabang.
<input type="text" id="nomor-rekening" name="nomor-rekening" required
value="<?php echo isset($norek) ? $norek : ''; ?>"><br>
6. Jangan lupa untuk menambahkan proses untuk logout, yaitu pertama kita buat tombol logoutnya dulu.
Kita ubah saja pada bagian tampilan informasi login username, sebagai berikut :
<li><a href="logout.php"><?php echo isset($_SESSION['username']) ? "LOGOUT:
".$_SESSION['username'] : " "; ?></a></li>
7. Ada perubahan tampilan, dan pada saat ini saya hapus menu ‘Mulai Berjualan’.
8. Berikutnya kita buat sebuah file logout.php, untuk menjalankan proses logout
9. Proses yang dilakukan pada proses logout adalah men-delete cookies (di php $_SESSION), kemudian di
redirect ke halaman index.php.
10. Kita buat file logout.php
11. Ke kkan script berikut pada file tersebut.
<?php
session_start();
session_unset();
session_destroy();
header("Location: index.php"); // Ganti dengan halaman yang sesuai setelah logout
exit;
?>