79 lines
3.1 KiB
PHP
79 lines
3.1 KiB
PHP
<?php
|
|
/**
|
|
* simpan_rumah.php v3 — Simpan / Update Data Rumah Miskin
|
|
*
|
|
* POST params:
|
|
* id - ID rumah (opsional, jika update)
|
|
* lat, lng - Koordinat
|
|
* address - Alamat lengkap
|
|
* rt, rw - RT dan RW
|
|
* kelurahan - Nama kelurahan
|
|
* status_miskin - sangat_miskin / miskin / tidak_miskin
|
|
* jumlah_anggota - Jumlah anggota keluarga
|
|
* anggota - JSON array data tiap anggota
|
|
* aid_status - helped / not_helped / outside
|
|
* has_data - 0 atau 1
|
|
*/
|
|
|
|
require_once 'koneksi.php';
|
|
|
|
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
|
|
echo json_encode(['success' => false, 'message' => 'Hanya POST']);
|
|
exit;
|
|
}
|
|
|
|
$id = intval($_POST['id'] ?? 0);
|
|
$lat = floatval($_POST['lat'] ?? 0);
|
|
$lng = floatval($_POST['lng'] ?? 0);
|
|
$address = $conn->real_escape_string(strip_tags($_POST['address'] ?? ''));
|
|
$rt = $conn->real_escape_string(strip_tags($_POST['rt'] ?? ''));
|
|
$rw = $conn->real_escape_string(strip_tags($_POST['rw'] ?? ''));
|
|
$kelurahan = $conn->real_escape_string(strip_tags($_POST['kelurahan'] ?? ''));
|
|
$statusMiskin = $conn->real_escape_string($_POST['status_miskin'] ?? '');
|
|
$jumlahAnggota = intval($_POST['jumlah_anggota'] ?? 0);
|
|
$anggotaRaw = $_POST['anggota'] ?? '[]';
|
|
$aidStatus = $conn->real_escape_string($_POST['aid_status'] ?? 'outside');
|
|
$hasData = intval($_POST['has_data'] ?? 0);
|
|
|
|
// Validasi anggota JSON
|
|
$anggotaDecoded = json_decode($anggotaRaw, true);
|
|
if (!is_array($anggotaDecoded)) $anggotaDecoded = [];
|
|
$anggotaJson = $conn->real_escape_string(json_encode($anggotaDecoded, JSON_UNESCAPED_UNICODE));
|
|
|
|
$validStatuses = ['sangat_miskin','miskin','tidak_miskin',''];
|
|
if (!in_array($statusMiskin, $validStatuses)) $statusMiskin = '';
|
|
|
|
$validAid = ['helped','not_helped','outside'];
|
|
if (!in_array($aidStatus, $validAid)) $aidStatus = 'outside';
|
|
|
|
if ($id > 0) {
|
|
// UPDATE
|
|
$sql = "UPDATE houses SET
|
|
latitude=$lat, longitude=$lng,
|
|
address='$address', rt='$rt', rw='$rw', kelurahan='$kelurahan',
|
|
status_miskin='$statusMiskin', jumlah_anggota=$jumlahAnggota,
|
|
anggota='$anggotaJson', aid_status='$aidStatus', has_data=$hasData,
|
|
updated_at=NOW()
|
|
WHERE id=$id";
|
|
if ($conn->query($sql)) {
|
|
echo json_encode(['success'=>true,'id'=>$id,'action'=>'updated']);
|
|
} else {
|
|
echo json_encode(['success'=>false,'message'=>$conn->error]);
|
|
}
|
|
} else {
|
|
// INSERT
|
|
$sql = "INSERT INTO houses
|
|
(latitude, longitude, address, rt, rw, kelurahan,
|
|
status_miskin, jumlah_anggota, anggota, aid_status, has_data)
|
|
VALUES
|
|
($lat, $lng, '$address', '$rt', '$rw', '$kelurahan',
|
|
'$statusMiskin', $jumlahAnggota, '$anggotaJson', '$aidStatus', $hasData)";
|
|
if ($conn->query($sql)) {
|
|
$newId = $conn->insert_id;
|
|
echo json_encode(['success'=>true,'id'=>$newId,'action'=>'inserted']);
|
|
} else {
|
|
echo json_encode(['success'=>false,'message'=>$conn->error]);
|
|
}
|
|
}
|
|
|
|
$conn->close(); |