38457-vm/warga.php
Flatlogic Bot 4e3818aac9 SiWarga
2026-02-15 18:49:39 +00:00

180 lines
7.5 KiB
PHP

<?php
require_once __DIR__ . '/layout_header.php';
$db = db();
$message = '';
// Handle Delete
if (isset($_GET['delete'])) {
$id = (int)$_GET['delete'];
$stmt = $db->prepare("DELETE FROM warga WHERE id = ?");
$stmt->execute([$id]);
$message = '<div class="alert alert-success">Data warga berhasil dihapus.</div>';
}
// Handle Add/Edit
if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['save_warga'])) {
$id = $_POST['id'] ?? null;
$nama = $_POST['nama'];
$blok = $_POST['blok'];
$nomor_rumah = $_POST['nomor_rumah'];
$nik = $_POST['nik'];
$kk = $_POST['kk'];
$telepon = $_POST['telepon'];
$status = $_POST['status'] ?? 'aktif';
if ($id) {
$stmt = $db->prepare("UPDATE warga SET nama=?, blok=?, nomor_rumah=?, nik=?, kk=?, telepon=?, status=? WHERE id=?");
$stmt->execute([$nama, $blok, $nomor_rumah, $nik, $kk, $telepon, $status, $id]);
$message = '<div class="alert alert-success">Data warga berhasil diperbarui.</div>';
} else {
$stmt = $db->prepare("INSERT INTO warga (nama, blok, nomor_rumah, nik, kk, telepon, status) VALUES (?, ?, ?, ?, ?, ?, ?)");
$stmt->execute([$nama, $blok, $nomor_rumah, $nik, $kk, $telepon, $status]);
$message = '<div class="alert alert-success">Warga baru berhasil ditambahkan.</div>';
}
}
// Fetch all warga
$warga_list = $db->query("SELECT * FROM warga ORDER BY blok ASC, nomor_rumah ASC")->fetchAll();
?>
<div class="top-bar">
<h1 class="h3 fw-bold m-0">Manajemen Warga</h1>
<button class="btn btn-primary" data-bs-toggle="modal" data-bs-target="#wargaModal" onclick="resetForm()">
<i class="bi bi-plus-lg"></i> Tambah Warga
</button>
</div>
<?= $message ?>
<div class="card">
<div class="table-responsive">
<table class="table table-hover align-middle">
<thead>
<tr>
<th>Nama</th>
<th>Blok/No</th>
<th>NIK / KK</th>
<th>Telepon</th>
<th>Status</th>
<th class="text-end">Aksi</th>
</tr>
</thead>
<tbody>
<?php foreach ($warga_list as $w): ?>
<tr>
<td>
<div class="fw-bold"><?= htmlspecialchars($w['nama']) ?></div>
</td>
<td><?= htmlspecialchars($w['blok']) ?> / <?= htmlspecialchars($w['nomor_rumah']) ?></td>
<td>
<div class="small">NIK: <?= htmlspecialchars($w['nik']) ?></div>
<div class="small text-muted">KK: <?= htmlspecialchars($w['kk']) ?></div>
</td>
<td><?= htmlspecialchars($w['telepon']) ?></td>
<td>
<span class="badge bg-<?= $w['status'] == 'aktif' ? 'success' : 'secondary' ?>">
<?= ucfirst($w['status']) ?>
</span>
</td>
<td class="text-end">
<button class="btn btn-sm btn-outline-primary me-1" onclick='editWarga(<?= json_encode($w) ?>)'>
<i class="bi bi-pencil"></i>
</button>
<a href="?delete=<?= $w['id'] ?>" class="btn btn-sm btn-outline-danger" onclick="return confirm('Yakin ingin menghapus?')">
<i class="bi bi-trash"></i>
</a>
</td>
</tr>
<?php endforeach; ?>
<?php if (empty($warga_list)): ?>
<tr>
<td colspan="6" class="text-center py-4 text-muted">Belum ada data warga.</td>
</tr>
<?php endif; ?>
</tbody>
</table>
</div>
</div>
<!-- Modal -->
<div class="modal fade" id="wargaModal" tabindex="-1">
<div class="modal-dialog">
<form method="POST" class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="modalTitle">Tambah Warga</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal"></button>
</div>
<div class="modal-body">
<input type="hidden" name="id" id="wargaId">
<div class="mb-3">
<label class="form-label">Nama Lengkap</label>
<input type="text" name="nama" id="wargaNama" class="form-control" required>
</div>
<div class="row">
<div class="col-md-6 mb-3">
<label class="form-label">Blok</label>
<input type="text" name="blok" id="wargaBlok" class="form-control" required>
</div>
<div class="col-md-6 mb-3">
<label class="form-label">Nomor Rumah</label>
<input type="text" name="nomor_rumah" id="wargaNomor" class="form-control" required>
</div>
</div>
<div class="mb-3">
<label class="form-label">NIK</label>
<input type="text" name="nik" id="wargaNIK" class="form-control">
</div>
<div class="mb-3">
<label class="form-label">Nomor KK</label>
<input type="text" name="kk" id="wargaKK" class="form-control">
</div>
<div class="mb-3">
<label class="form-label">Telepon</label>
<input type="text" name="telepon" id="wargaTelepon" class="form-control">
</div>
<div class="mb-3">
<label class="form-label">Status</label>
<select name="status" id="wargaStatus" class="form-select">
<option value="aktif">Aktif</option>
<option value="non-aktif">Non-Aktif</option>
</select>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Batal</button>
<button type="submit" name="save_warga" class="btn btn-primary">Simpan</button>
</div>
</form>
</div>
</div>
<script>
function editWarga(warga) {
document.getElementById('modalTitle').innerText = 'Edit Warga';
document.getElementById('wargaId').value = warga.id;
document.getElementById('wargaNama').value = warga.nama;
document.getElementById('wargaBlok').value = warga.blok;
document.getElementById('wargaNomor').value = warga.nomor_rumah;
document.getElementById('wargaNIK').value = warga.nik;
document.getElementById('wargaKK').value = warga.kk;
document.getElementById('wargaTelepon').value = warga.telepon;
document.getElementById('wargaStatus').value = warga.status;
new bootstrap.Modal(document.getElementById('wargaModal')).show();
}
function resetForm() {
document.getElementById('modalTitle').innerText = 'Tambah Warga';
document.getElementById('wargaId').value = '';
document.getElementById('wargaNama').value = '';
document.getElementById('wargaBlok').value = '';
document.getElementById('wargaNomor').value = '';
document.getElementById('wargaNIK').value = '';
document.getElementById('wargaKK').value = '';
document.getElementById('wargaTelepon').value = '';
document.getElementById('wargaStatus').value = 'aktif';
}
</script>
<?php require_once __DIR__ . '/layout_footer.php'; ?>