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();