Fix: remove MySQL dependency, use API fetch for all pages

This commit is contained in:
2026-06-14 20:36:28 +07:00
parent 43e99a0f54
commit 61b1879377
2 changed files with 8 additions and 185 deletions
+5 -85
View File
@@ -1,71 +1,5 @@
<?php
// Koneksi database PDO
$host = '127.0.0.1';
$db = 'webgis_spbu';
$user = 'root';
$pass = '';
$charset = 'utf8mb4';
$dsn = "mysql:host=$host;dbname=$db;charset=$charset";
$options = [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::ATTR_EMULATE_PREPARES => false,
];
try {
$pdo = new PDO($dsn, $user, $pass, $options);
} catch (PDOException $e) {
die('Koneksi gagal: ' . htmlspecialchars($e->getMessage()));
}
// Buat tabel jika belum ada
$createTableSql = "CREATE TABLE IF NOT EXISTS t_tanah (
id INT AUTO_INCREMENT PRIMARY KEY,
nama_pemilik VARCHAR(255) NOT NULL,
status_kepemilikan ENUM('SHM', 'HGB', 'HGU', 'HP') NOT NULL,
luas_sqm DECIMAL(10,2) NOT NULL,
koordinat_json LONGTEXT NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci";
$pdo->exec($createTableSql);
// Simpan data jika form disubmit
$successMessage = '';
$errorMessage = '';
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$namaPemilik = trim($_POST['nama_pemilik'] ?? '');
$statusKepemilikan = $_POST['status_kepemilikan'] ?? '';
$luasSqm = $_POST['luas_sqm'] ?? '';
$koordinatJson = $_POST['koordinat_json'] ?? '';
if ($namaPemilik === '' || $statusKepemilikan === '' || $luasSqm === '' || $koordinatJson === '') {
$errorMessage = 'Semua field harus diisi dan polygon harus dibuat sebelum submit.';
} else {
try {
$stmt = $pdo->prepare('INSERT INTO t_tanah (nama_pemilik, status_kepemilikan, luas_sqm, koordinat_json) VALUES (:nama, :status, :luas, :koordinat)');
$stmt->execute([
':nama' => $namaPemilik,
':status' => $statusKepemilikan,
':luas' => $luasSqm,
':koordinat' => $koordinatJson,
]);
$successMessage = 'Data tanah berhasil disimpan.';
header('Location: ' . $_SERVER['PHP_SELF'] . '?saved=1');
exit;
} catch (PDOException $e) {
$errorMessage = 'Gagal menyimpan data: ' . htmlspecialchars($e->getMessage());
}
}
}
// Ambil semua data polygon
$tanahData = [];
$stmt = $pdo->query('SELECT id, nama_pemilik, status_kepemilikan, luas_sqm, koordinat_json, created_at FROM t_tanah ORDER BY created_at DESC');
while ($row = $stmt->fetch()) {
$row['coords'] = json_decode($row['koordinat_json'], true);
$tanahData[] = $row;
}
// Data diambil dari API - tidak ada koneksi MySQL di frontend ini
?>
<!DOCTYPE html>
<html lang="id">
@@ -119,10 +53,7 @@ while ($row = $stmt->fetch()) {
<div class="card">
<?php if (!empty($_GET['saved']) && $_GET['saved'] == 1): ?>
<div class="message success">Data tanah berhasil disimpan.</div>
<?php endif; ?>
<?php if ($errorMessage): ?>
<div class="message error"><?= htmlspecialchars($errorMessage) ?></div>
<div class="message success">Data tanah berhasil disimpan dari API.</div>
<?php endif; ?>
<div id="map"></div>
<p class="note">Klik beberapa titik pada peta untuk membuat polygon. Tutup polygon dengan klik titik awal lagi untuk menghitung luas otomatis.</p>
@@ -164,19 +95,8 @@ while ($row = $stmt->fetch()) {
<div class="card">
<h2>Daftar Parsil Tertinggi & Detail</h2>
<div class="info-list">
<?php if (empty($tanahData)): ?>
<div class="info-card">Belum ada data parsil. Tambahkan bidang tanah melalui peta dan form di atas.</div>
<?php else: ?>
<?php foreach ($tanahData as $tanah): ?>
<div class="info-card">
<strong><?= htmlspecialchars($tanah['nama_pemilik']) ?> · <?= htmlspecialchars($tanah['status_kepemilikan']) ?></strong>
<div>Luas: <?= number_format($tanah['luas_sqm'], 2, ',', '.') ?> m²</div>
<div>Disimpan: <?= htmlspecialchars($tanah['created_at']) ?></div>
<div style="margin-top: 10px;"><span class="status-pill status-<?= strtolower($tanah['status_kepemilikan']) ?>"><?= htmlspecialchars($tanah['status_kepemilikan']) ?></span></div>
</div>
<?php endforeach; ?>
<?php endif; ?>
<div class="info-list" id="tanah-list">
<div class="info-card">Memuat data dari API...</div>
</div>
</div>
</div>
@@ -201,7 +121,7 @@ while ($row = $stmt->fetch()) {
HP: '#1d4ed8'
};
const existingData = <?= json_encode($tanahData, JSON_UNESCAPED_UNICODE) ?>;
const existingData = []; // Data diambil dari API
existingData.forEach(item => {
if (!Array.isArray(item.coords)) return;
const coords = item.coords.map(c => [c.lat, c.lng]);