feat(ReduksiSampahSatpel): add event change form lokasi dan jenis lokasi

main
Kevin Hendrawan 2025-12-12 00:57:20 +07:00
parent bb7474ecf8
commit 3d0950f484
1 changed files with 66 additions and 2 deletions

View File

@ -156,8 +156,35 @@
@section Scripts {
<script type="text/javascript">
var table;
var allLokasi = [];
$(document).ready(function () {
// Load data lokasi
$.ajax({
url: '/Master/Lokasi/Table',
method: 'GET',
success: function (response) {
// ambil semua data kecuali 'aksi'
allLokasi = (response.data || []).map(item => {
return {
jenis_lokasi: item.jenis_lokasi,
nama_lokasi: item.nama_lokasi,
kecamatan: item.kecamatan,
kelurahan: item.kelurahan,
detail_alamat: item.detail_alamat,
rt: item.rt,
rw: item.rw
};
});
},
error: function () {
console.error("Gagal mengambil data lokasi dari /Master/Lokasi/Table");
}
});
table = new DataTable('#example', {
ajax: '/Main/ReduksiSampahSatpel/Table',
scrollX: true,
@ -175,18 +202,55 @@
]
});
$('#jenis_lokasi').on('change', function() {
const jenisLokasi = $(this).val();
if (jenisLokasi) {
$('#formDetail').removeClass('hidden').hide().fadeIn(300);
populateLokasiDropdown(jenisLokasi);
resetForm();
populateNamaLokasiDropdown(jenisLokasi);
$('#formTambah')[0].reset();
} else {
$('#formDetail').fadeOut(300);
}
});
// 🔹 Event: ketika nama_lokasi dipilih
$('#lokasi').on('change', function () {
const nama = $(this).val();
if (!nama) {
$('#alamat').val(''); // reset jika tidak ada pilihan
return;
}
// cari lokasi yang sesuai
const lokasi = allLokasi.find(item => item.nama_lokasi === nama);
if (lokasi) {
// format: Kecamatan, Kelurahan, RT, RW, Detail Alamat
const formattedAlamat = `${lokasi.kecamatan}, ${lokasi.kelurahan}, RT ${lokasi.rt}, RW ${lokasi.rw}, ${lokasi.detail_alamat}`;
$('#alamat').val(formattedAlamat);
}
});
});
// 🔹 Fungsi: filter lokasi berdasarkan jenis_lokasi
function populateNamaLokasiDropdown(jenisLokasi) {
let options = '<option value="">Pilih salah satu</option>';
if (jenisLokasi) {
// filter lokasi berdasarkan jenis_lokasi
const filtered = allLokasi.filter(item => item.jenis_lokasi === jenisLokasi);
filtered.forEach(item => {
options += `<option value="${item.nama_lokasi}">${item.nama_lokasi}</option>`;
});
}
$('#lokasi').html(options);
}
function closeModal() {
// Reset form