Files
Webgis_final/01/php/simpan_masyarakat.php
2026-06-10 23:17:11 +07:00

76 lines
2.9 KiB
PHP

<?php
// ========================================
// FILE: php/simpan_masyarakat.php
// Menyimpan data masyarakat miskin
// ========================================
include 'koneksi.php';
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$nama = sanitize($_POST['nama'] ?? '', $conn);
$tanggal_lahir = sanitize($_POST['tanggal_lahir'] ?? '', $conn);
$jenis_kelamin = sanitize($_POST['jenis_kelamin'] ?? '', $conn);
$nik = sanitize($_POST['nik'] ?? '', $conn);
$alamat = sanitize($_POST['alamat'] ?? '', $conn);
$latitude = floatval($_POST['latitude'] ?? 0);
$longitude = floatval($_POST['longitude'] ?? 0);
$status_bpjs = sanitize($_POST['status_bpjs'] ?? 'Tidak', $conn);
$no_hp = sanitize($_POST['no_hp'] ?? '', $conn);
$pekerjaan = sanitize($_POST['pekerjaan'] ?? '', $conn);
$pendapatan = intval($_POST['pendapatan_bulanan'] ?? 0);
$tanggungan = intval($_POST['jumlah_tanggungan'] ?? 0);
$status_rumah = sanitize($_POST['status_rumah'] ?? 'Menumpang', $conn);
$kelurahan = sanitize($_POST['kelurahan'] ?? '', $conn);
$kecamatan = sanitize($_POST['kecamatan'] ?? '', $conn);
// VALIDASI INPUT
if (empty($nama)) {
sendJSON('error', 'Nama wajib diisi');
}
if (empty($alamat)) {
sendJSON('error', 'Alamat wajib diisi');
}
if ($latitude == 0 || $longitude == 0) {
sendJSON('error', 'Koordinat lokasi wajib diisi (klik peta untuk menentukan titik)');
}
// CEK DUPLIKAT NIK (jika NIK diisi)
if (!empty($nik)) {
$stmt_cek = $conn->prepare("SELECT id FROM masyarakat_miskin WHERE nik = ?");
$stmt_cek->bind_param("s", $nik);
$stmt_cek->execute();
$cek = $stmt_cek->get_result();
if ($cek && $cek->num_rows > 0) {
sendJSON('error', 'NIK sudah terdaftar di sistem');
}
$stmt_cek->close();
}
// QUERY INSERT
$query = "INSERT INTO masyarakat_miskin
(nama, tanggal_lahir, jenis_kelamin, nik, alamat, latitude, longitude,
status_bpjs, no_hp, pekerjaan, pendapatan_bulanan, jumlah_tanggungan,
status_rumah, kelurahan, kecamatan)
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
$stmt = $conn->prepare($query);
if ($stmt === false) {
sendJSON('error', 'Gagal prepare statement: ' . $conn->error);
}
$stmt->bind_param("sssssddsssiisss", $nama, $tanggal_lahir, $jenis_kelamin, $nik, $alamat, $latitude, $longitude, $status_bpjs, $no_hp, $pekerjaan, $pendapatan, $tanggungan, $status_rumah, $kelurahan, $kecamatan);
if ($stmt->execute()) {
$id = $stmt->insert_id;
sendJSON('success', 'Data masyarakat berhasil disimpan', ['id' => $id]);
} else {
sendJSON('error', 'Gagal menyimpan data: ' . $stmt->error);
}
$stmt->close();
} else {
sendJSON('error', 'Method tidak diizinkan. Gunakan POST.');
}
?>