Pada postingan kali ini, saya akan mencoba menggunakan Ajax dalam sebuah halaman. Ada 2 contoh yang akan saya jelaskan, yang pertama menjelaskan contoh aplikasi AJAX, dan yang kedua menjelaskan aplikasi AJAX di filter alamat-daerah. Oke langsung saja untuk penjelasannya.
Yang pertama adalah contoh aplikasi halaman yang menggunakan AJAX untuk mengubah konten dari halaman tanpa melakukan reload atau berpindah halaman.
Dalam contoh ini, diperlukan dua file untuk mensimulasikannya, file index.html sebagai halaman utama, dan file data-ajax.html sebagai isi dari data yang akan diload.
Kemudian masukkan kode berikut ke file index.html
<html lang="en"> | |
<head> | |
<meta charset="UTF-8"> | |
<meta http-equiv="X-UA-Compatible" content="IE=edge"> | |
<meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
<title>Request File dengan Ajax</title> | |
<script language="javascript"> | |
var XMLHttpRequestObject = false; | |
if (window.XMLHttpRequest) { | |
XMLHttpRequestObject = new XMLHttpRequest(); | |
} else if (window.ActiveXObject) { | |
XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHttp"); | |
} | |
function getdata(url, divhasil) { | |
if (XMLHttpRequestObject) { | |
const obj = document.getElementById(divhasil); | |
XMLHttpRequestObject.open("GET", url); | |
XMLHttpRequestObject.onreadystatechange = () => { | |
if (XMLHttpRequestObject.readyState === 1) { | |
obj.innerHTML = "Loading"; | |
} | |
if (XMLHttpRequestObject.readyState === 4) { | |
if (XMLHttpRequestObject.status === 200) { | |
obj.innerHTML = XMLHttpRequestObject.responseText; | |
} else { | |
obj.innerHTML = XMLHttpRequestObject.statusText; | |
} | |
} | |
} | |
XMLHttpRequestObject.send(null); | |
} | |
} | |
</script> | |
</head> | |
<body | |
style="display: flex; flex-direction: column; width: 100vw; height: 100vh; text-align: center; justify-content: center; font-family: Arial, Helvetica, sans-serif;"> | |
<h1>Mengambil data menggunakan AJAX</h1> | |
<form> | |
<input type="button" value="Tampilkan Data" onclick="getdata('data-ajax.html','divhasil')"> | |
</form> | |
<div id="divhasil"> | |
Hasil data yang diambil AJAX akan ditampilkan disini | |
</div> | |
</body> | |
</html> |
Dan kode berikut ke file data-ajax.html
Text ini diambil dengan <strong>Ajax</strong> |
Selain itu, ketika file tujuan tidak tersedia atau error, maka juga menampilkan pesan error dari requestnya
Yang kedua adalah contoh penerapan dari AJAX dalam filter alamat-daerah dalam kolom pencarian.
Langkah pertama yang harus dilakukan adalah menginputkan file berikut ke dalam database MySQL.
Kemudian isikan kode berikut untuk masing-masing file
koneksi.php
<?php | |
define('HOST','localhost'); | |
define('USER','root'); | |
define('PASS',''); | |
define('DB1', 'ajax'); | |
// Buat Koneksinya | |
$db1 = new mysqli(HOST, USER, PASS, DB1); | |
?> |
index.php
<html lang="en"> | |
<head> | |
<meta charset="UTF-8"> | |
<meta http-equiv="X-UA-Compatible" content="IE=edge"> | |
<meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
<title>Menggunakan AJAX dalam Filter</title> | |
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css"> | |
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> | |
</head> | |
<body> | |
<nav class="navbar navbar-dark bg-primary fixed-top"> | |
<a class="navbar-brand" href="index.php" style="color: #fff;"> | |
Dewan Komputer | |
</a> | |
</nav> | |
<div class="container mb-5"> | |
<h2 align="center" style="margin: 60px 10px 10px 10px;">Dewan Demo Combobox Bertingkat Daerah Indonesia</h2><hr> | |
<div class="row"> | |
<div class="col-sm-6"> | |
<div class="form-group"> | |
<label>Provinsi</label> | |
<select class="form-control" name="provinsi" id="provinsi"> | |
<option value=""> Pilih Provinsi</option> | |
</select> | |
</div> | |
<div class="form-group"> | |
<label>Kabupaten</label> | |
<select class="form-control" name="kabupaten" id="kabupaten"> | |
<option value=""></option> | |
</select> | |
</div> | |
<div class="form-group"> | |
<label>Kecamatan</label> | |
<select class="form-control" name="kecamatan" id="kecamatan"> | |
<option value=""></option> | |
</select> | |
</div> | |
<div class="form-group"> | |
<label>Kelurahan</label> | |
<select class="form-control" name="kelurahan" id="kelurahan"> | |
<option value=""></option> | |
</select> | |
</div> | |
</div> | |
</div> | |
<hr> | |
</div> | |
<div class="navbar bg-dark fixed-bottom"> | |
<div style="color: #fff;">© <?php echo date('Y'); ?> Copyright: | |
<a href="https://dewankomputer.com/"> Dewan Komputer</a> | |
</div> | |
</div> | |
<script type="text/javascript"> | |
$(document).ready(function(){ | |
$.ajax({ | |
type: 'POST', | |
url: "get_provinsi.php", | |
cache: false, | |
success: function(msg){ | |
$("#provinsi").html(msg); | |
} | |
}); | |
$("#provinsi").change(function(){ | |
var provinsi = $("#provinsi").val(); | |
$.ajax({ | |
type: 'POST', | |
url: "get_kabupaten.php", | |
data: {provinsi: provinsi}, | |
cache: false, | |
success: function(msg){ | |
$("#kabupaten").html(msg); | |
} | |
}); | |
}); | |
$("#kabupaten").change(function(){ | |
var kabupaten = $("#kabupaten").val(); | |
$.ajax({ | |
type: 'POST', | |
url: "get_kecamatan.php", | |
data: {kabupaten: kabupaten}, | |
cache: false, | |
success: function(msg){ | |
$("#kecamatan").html(msg); | |
} | |
}); | |
}); | |
$("#kecamatan").change(function(){ | |
var kecamatan = $("#kecamatan").val(); | |
$.ajax({ | |
type: 'POST', | |
url: "get_kelurahan.php", | |
data: {kecamatan: kecamatan}, | |
cache: false, | |
success: function(msg){ | |
$("#kelurahan").html(msg); | |
} | |
}); | |
}); | |
}); | |
</script> | |
</body> | |
</html> |
get_provinsi.php
<?php | |
include 'koneksi.php'; | |
echo "<option value=''>Pilih Provinsi</option>"; | |
$query = "SELECT * FROM provinsi ORDER BY nama ASC"; | |
$dewan1 = $db1->prepare($query); | |
$dewan1->execute(); | |
$res1 = $dewan1->get_result(); | |
while ($row = $res1->fetch_assoc()) { | |
echo "<option value='" . $row['id_prov'] . "'>" . $row['nama'] . "</option>"; | |
} | |
?> |
get_kabupaten.php
<?php | |
include 'koneksi.php'; | |
$provinsi = $_POST['provinsi']; | |
echo "<option value=''>Pilih Kabupaten</option>"; | |
$query = "SELECT * FROM kabupaten WHERE id_prov=? ORDER BY nama ASC"; | |
$dewan1 = $db1->prepare($query); | |
$dewan1->bind_param("i", $provinsi); | |
$dewan1->execute(); | |
$res1 = $dewan1->get_result(); | |
while ($row = $res1->fetch_assoc()) { | |
echo "<option value='" . $row['id_kab'] . "'>" . $row['nama'] . "</option>"; | |
} | |
?> |
get_kecamatan.php
<?php | |
include 'koneksi.php'; | |
$kabupaten = $_POST['kabupaten']; | |
echo "<option value=''>Pilih Kecamatan</option>"; | |
$query = "SELECT * FROM kecamatan WHERE id_kab=? ORDER BY nama ASC"; | |
$dewan1 = $db1->prepare($query); | |
$dewan1->bind_param("i", $kabupaten); | |
$dewan1->execute(); | |
$res1 = $dewan1->get_result(); | |
while ($row = $res1->fetch_assoc()) { | |
echo "<option value='" . $row['id_kec'] . "'>" . $row['nama'] . "</option>"; | |
} | |
?> |
get_kelurahan.php
<?php | |
include 'koneksi.php'; | |
$kecamatan = $_POST['kecamatan']; | |
echo "<option value=''>Pilih Kelurahan</option>"; | |
$query = "SELECT * FROM kelurahan WHERE id_kec=? ORDER BY nama ASC"; | |
$dewan1 = $db1->prepare($query); | |
$dewan1->bind_param("i", $kecamatan); | |
$dewan1->execute(); | |
$res1 = $dewan1->get_result(); | |
while ($row = $res1->fetch_assoc()) { | |
echo "<option value='" . $row['id_kel'] . "'>" . $row['nama'] . "</option>"; | |
} | |
?> |
Lalu, jalankan halaman dengan menggunakan XAMPP, maka hasilnya akan seperti berikut
Sekian postingan kali ini, semoga bermanfaat
Comments
Post a Comment