47 lines
1.9 KiB
PHP
47 lines
1.9 KiB
PHP
<?php
|
|
// php/create_anggota.php
|
|
require_once 'koneksi.php';
|
|
header('Content-Type: text/plain');
|
|
|
|
$kemiskinanId = intval($_POST['kemiskinan_id'] ?? 0);
|
|
$nama = trim($_POST['nama'] ?? '');
|
|
$tanggalLahir = trim($_POST['tanggal_lahir'] ?? '');
|
|
$jenisKelamin = trim($_POST['jenis_kelamin'] ?? 'laki_laki');
|
|
$hubungan = trim($_POST['hubungan_keluarga'] ?? 'anak');
|
|
$statusHidup = trim($_POST['status_hidup'] ?? 'hidup');
|
|
$pendidikan = trim($_POST['pendidikan'] ?? 'belum_sekolah');
|
|
$catatan = trim($_POST['catatan_khusus'] ?? '');
|
|
|
|
if (!$kemiskinanId || !$nama) {
|
|
http_response_code(400); echo 'Data tidak lengkap.'; exit;
|
|
}
|
|
|
|
// Validasi enum
|
|
$validJK = ['laki_laki','perempuan'];
|
|
$validHub = ['kepala_keluarga','istri','anak','orang_tua','saudara','lainnya'];
|
|
$validStatus = ['hidup','meninggal','pindah','menikah_keluar'];
|
|
$validPendid = ['belum_sekolah','paud','sd','smp','sma','kuliah','pesantren','pelatihan','bekerja','tidak_sekolah'];
|
|
|
|
if (!in_array($jenisKelamin, $validJK)) $jenisKelamin = 'laki_laki';
|
|
if (!in_array($hubungan, $validHub)) $hubungan = 'anak';
|
|
if (!in_array($statusHidup, $validStatus)) $statusHidup = 'hidup';
|
|
if (!in_array($pendidikan, $validPendid)) $pendidikan = 'belum_sekolah';
|
|
|
|
// Validasi tanggal
|
|
$tgl = (!empty($tanggalLahir) && strtotime($tanggalLahir)) ? $tanggalLahir : null;
|
|
|
|
$stmt = $conn->prepare(
|
|
"INSERT INTO anggota_keluarga (kemiskinan_id, nama, tanggal_lahir, jenis_kelamin, hubungan_keluarga, status_hidup, pendidikan, catatan_khusus)
|
|
VALUES (?, ?, ?, ?, ?, ?, ?, ?)"
|
|
);
|
|
if (!$stmt) { http_response_code(500); echo 'Gagal prepare.'; exit; }
|
|
|
|
$stmt->bind_param('isssssss', $kemiskinanId, $nama, $tgl, $jenisKelamin, $hubungan, $statusHidup, $pendidikan, $catatan);
|
|
if ($stmt->execute()) {
|
|
echo 'success';
|
|
} else {
|
|
http_response_code(500); echo 'Gagal menyimpan: ' . $stmt->error;
|
|
}
|
|
$stmt->close();
|
|
?>
|