feat : fix fetch bug
This commit is contained in:
+3
-20
@@ -196,7 +196,6 @@
|
||||
</main>
|
||||
|
||||
<script>
|
||||
// Deklarasi Status Langkah Global
|
||||
let langkah_sekarang = 1;
|
||||
const total_langkah = 4;
|
||||
|
||||
@@ -208,25 +207,19 @@
|
||||
const btn_kirim = document.getElementById('btn_kirim');
|
||||
const peringatan_error = document.getElementById('peringatan_error');
|
||||
|
||||
// Menampilkan pesan notifikasi kegagalan validasi ke antarmuka pengguna
|
||||
function tampilkan_error(pesan) {
|
||||
peringatan_error.textContent = pesan;
|
||||
peringatan_error.classList.remove('hidden');
|
||||
}
|
||||
|
||||
// Menyembunyikan wadah notifikasi kegagalan
|
||||
function sembunyikan_error() {
|
||||
peringatan_error.classList.add('hidden');
|
||||
peringatan_error.textContent = '';
|
||||
}
|
||||
|
||||
// Memastikan kelayakan data masukan di setiap bagian formulir sebelum melangkah
|
||||
function validasi_langkah_aktif() {
|
||||
sembunyikan_error();
|
||||
|
||||
/* Baris Kompleks: Logika kondisional bersarang (switch case) memisahkan aturan validasi
|
||||
berdasarkan indeks tahapan aktif, memastikan konversi dan ekspresi reguler teks tepat
|
||||
sebelum dievaluasi agar terhindar dari pengiriman muatan bernilai kosong ke server. */
|
||||
switch(langkah_sekarang) {
|
||||
case 1:
|
||||
if (!/^\d{16}$/.test(document.getElementById('input_nik').value)) {
|
||||
@@ -260,7 +253,7 @@
|
||||
!document.getElementById('input_sumber_penerangan').value ||
|
||||
!document.getElementById('input_frekuensi_makan').value ||
|
||||
!document.getElementById('input_kepemilikan_aset').value) {
|
||||
tampilkan_error('Seluruh parameter utilitas dan sosial ekonomi wajib dipilih.');
|
||||
tampilkan_error('Seluruh parameter utilitas and sosial ekonomi wajib dipilih.');
|
||||
return false;
|
||||
}
|
||||
if (document.getElementById('input_pekerjaan').value.trim() === '') {
|
||||
@@ -283,7 +276,6 @@
|
||||
return true;
|
||||
}
|
||||
|
||||
// Menggerakkan alur visual formulir multi-langkah maju atau mundur
|
||||
function ubah_langkah(arah) {
|
||||
if (arah === 1 && !validasi_langkah_aktif()) return;
|
||||
|
||||
@@ -294,7 +286,6 @@
|
||||
perbarui_antarmuka_wizard();
|
||||
}
|
||||
|
||||
// Sinkronisasi status bar kemajuan dan kontrol tombol navigasi bawah
|
||||
function perbarui_antarmuka_wizard() {
|
||||
if (langkah_sekarang === 1) {
|
||||
btn_mundur.classList.add('hidden');
|
||||
@@ -327,7 +318,6 @@
|
||||
if(document.getElementById('garis_3')) document.getElementById('garis_3').style.width = langkah_sekarang >= 4 ? '100%' : '0%';
|
||||
}
|
||||
|
||||
// Inisialisasi komponen GIS Leaflet untuk penentuan lokasi rumah warga
|
||||
function inisialisasi_peta() {
|
||||
if (instansi_peta !== null) {
|
||||
instansi_peta.invalidateSize();
|
||||
@@ -339,9 +329,6 @@
|
||||
attribution: '© OpenStreetMap'
|
||||
}).addTo(instansi_peta);
|
||||
|
||||
/* Baris Kompleks: Penangkapan event klik pada objek peta Leaflet secara dinamis
|
||||
mengekstrak properti koordinat lintang dan bujur (latlng) untuk memindahkan objek penanda
|
||||
serta mengisi elemen masukan teks masukan secara otomatis. */
|
||||
instansi_peta.on('click', function(e) {
|
||||
const lat = e.latlng.lat;
|
||||
const lng = e.latlng.lng;
|
||||
@@ -355,7 +342,6 @@
|
||||
});
|
||||
}
|
||||
|
||||
// Mengakses perangkat keras penerima gelombang navigasi satelit melalui web API browser
|
||||
function dapatkan_lokasi_gps() {
|
||||
if (navigator.geolocation) {
|
||||
navigator.geolocation.getCurrentPosition(
|
||||
@@ -380,14 +366,12 @@
|
||||
}
|
||||
}
|
||||
|
||||
// Mengirimkan enkapsulasi objek data survei menuju web server secara asinkron
|
||||
async function kirim_data_survei() {
|
||||
if (!validasi_langkah_aktif()) return;
|
||||
|
||||
btn_kirim.disabled = true;
|
||||
btn_kirim.innerHTML = 'Mengirim Data...';
|
||||
|
||||
// Konstruksi objek payload JSON disesuaikan secara presisi dengan skema database_baru.sqlite
|
||||
const payload_survei = {
|
||||
nik: document.getElementById('input_nik').value,
|
||||
nama_kk: document.getElementById('input_nama_kk').value,
|
||||
@@ -411,9 +395,8 @@
|
||||
};
|
||||
|
||||
try {
|
||||
/* Baris Kompleks: Eksekusi transmisi data asinkron via HTTP POST menuju endpoint server.
|
||||
Header 'Content-Type' diset ke JSON agar dapat dibaca oleh middleware express.json() di backend. */
|
||||
const http_response = await fetch('http://localhost:3000/api/survey/submit', {
|
||||
// Diubah ke relative path
|
||||
const http_response = await fetch('/api/survey/submit', {
|
||||
method: 'POST',
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
body: JSON.stringify(payload_survei)
|
||||
|
||||
Reference in New Issue
Block a user