Upload files to "/"
This commit is contained in:
+14
@@ -0,0 +1,14 @@
|
||||
<?php
|
||||
|
||||
define('DB_HOST', 'localhost');
|
||||
define('DB_USER', 'root');
|
||||
define('DB_PASS', ''); // XAMPP: kosong (tidak ada password)
|
||||
define('DB_NAME', 'webgis_sigma');
|
||||
|
||||
$conn = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME);
|
||||
$conn->set_charset('utf8mb4');
|
||||
|
||||
if ($conn->connect_error) {
|
||||
http_response_code(500);
|
||||
die(json_encode(['status' => 'error', 'message' => 'Koneksi gagal: ' . $conn->connect_error]));
|
||||
}
|
||||
+178
@@ -0,0 +1,178 @@
|
||||
<?php
|
||||
// =====================================================
|
||||
// proses.php — Handler CRUD via AJAX + direct request
|
||||
// =====================================================
|
||||
|
||||
header('Content-Type: application/json; charset=utf-8');
|
||||
include 'koneksi.php';
|
||||
|
||||
// ── Sanitasi helper ──────────────────────────────────
|
||||
function bersih($str) {
|
||||
return htmlspecialchars(strip_tags(trim($str)));
|
||||
}
|
||||
|
||||
// ── Routing ─────────────────────────────────────────
|
||||
$aksi = $_POST['aksi'] ?? $_GET['aksi'] ?? '';
|
||||
|
||||
// ============================================================
|
||||
// CREATE — Simpan objek baru
|
||||
// ============================================================
|
||||
if ($aksi === 'simpan') {
|
||||
$nama = bersih($_POST['nama'] ?? '');
|
||||
$wa = bersih($_POST['wa'] ?? '');
|
||||
$jam = ($_POST['jam'] ?? 'Tidak') === 'Ya' ? 'Ya' : 'Tidak';
|
||||
$jenis = bersih($_POST['jenis'] ?? '');
|
||||
$koord = $_POST['koordinat'] ?? '';
|
||||
|
||||
// Validasi
|
||||
if (!$nama) {
|
||||
echo json_encode(['status' => 'error', 'message' => 'Nama wajib diisi!']);
|
||||
exit;
|
||||
}
|
||||
$jenis_valid = ['marker', 'polyline', 'polygon'];
|
||||
if (!in_array($jenis, $jenis_valid)) {
|
||||
echo json_encode(['status' => 'error', 'message' => 'Jenis geometri tidak valid!']);
|
||||
exit;
|
||||
}
|
||||
// Validasi JSON koordinat
|
||||
$koord_test = json_decode($koord, true);
|
||||
if ($koord_test === null) {
|
||||
echo json_encode(['status' => 'error', 'message' => 'Koordinat tidak valid!']);
|
||||
exit;
|
||||
}
|
||||
|
||||
$stmt = $conn->prepare(
|
||||
"INSERT INTO geometri_sigma (nama_objek, no_wa, buka_24jam, jenis_geometri, koordinat) VALUES (?, ?, ?, ?, ?)"
|
||||
);
|
||||
$stmt->bind_param('sssss', $nama, $wa, $jam, $jenis, $koord);
|
||||
|
||||
if ($stmt->execute()) {
|
||||
echo json_encode(['status' => 'ok', 'id' => $stmt->insert_id, 'message' => 'Data berhasil disimpan!']);
|
||||
} else {
|
||||
echo json_encode(['status' => 'error', 'message' => 'Gagal menyimpan: ' . $stmt->error]);
|
||||
}
|
||||
$stmt->close();
|
||||
exit;
|
||||
}
|
||||
|
||||
// ============================================================
|
||||
// READ — Ambil semua data (untuk reload tanpa refresh halaman)
|
||||
// ============================================================
|
||||
if ($aksi === 'baca') {
|
||||
$result = $conn->query("SELECT * FROM geometri_sigma ORDER BY created_at DESC");
|
||||
$data = [];
|
||||
while ($row = $result->fetch_assoc()) {
|
||||
$data[] = $row;
|
||||
}
|
||||
echo json_encode(['status' => 'ok', 'data' => $data]);
|
||||
exit;
|
||||
}
|
||||
|
||||
// ============================================================
|
||||
// READ SINGLE — Ambil satu data berdasarkan ID
|
||||
// ============================================================
|
||||
if ($aksi === 'detail') {
|
||||
$id = intval($_GET['id'] ?? 0);
|
||||
$stmt = $conn->prepare("SELECT * FROM geometri_sigma WHERE id = ?");
|
||||
$stmt->bind_param('i', $id);
|
||||
$stmt->execute();
|
||||
$row = $stmt->get_result()->fetch_assoc();
|
||||
if ($row) {
|
||||
echo json_encode(['status' => 'ok', 'data' => $row]);
|
||||
} else {
|
||||
echo json_encode(['status' => 'error', 'message' => 'Data tidak ditemukan']);
|
||||
}
|
||||
$stmt->close();
|
||||
exit;
|
||||
}
|
||||
|
||||
// ============================================================
|
||||
// UPDATE — Perbarui data & koordinat
|
||||
// ============================================================
|
||||
if ($aksi === 'update') {
|
||||
$id = intval($_POST['id'] ?? 0);
|
||||
$nama = bersih($_POST['nama'] ?? '');
|
||||
$wa = bersih($_POST['wa'] ?? '');
|
||||
$jam = ($_POST['jam'] ?? 'Tidak') === 'Ya' ? 'Ya' : 'Tidak';
|
||||
$koord = $_POST['koordinat'] ?? '';
|
||||
|
||||
if (!$id || !$nama) {
|
||||
echo json_encode(['status' => 'error', 'message' => 'ID dan Nama wajib ada!']);
|
||||
exit;
|
||||
}
|
||||
|
||||
$fields = "nama_objek=?, no_wa=?, buka_24jam=?";
|
||||
$params = [$nama, $wa, $jam];
|
||||
$types = 'sss';
|
||||
|
||||
// Update koordinat jika dikirim (drag marker / edit polyline/polygon)
|
||||
if ($koord) {
|
||||
$koord_test = json_decode($koord, true);
|
||||
if ($koord_test !== null) {
|
||||
$fields .= ", koordinat=?";
|
||||
$params[] = $koord;
|
||||
$types .= 's';
|
||||
}
|
||||
}
|
||||
|
||||
$params[] = $id;
|
||||
$types .= 'i';
|
||||
|
||||
$stmt = $conn->prepare("UPDATE geometri_sigma SET $fields WHERE id = ?");
|
||||
$stmt->bind_param($types, ...$params);
|
||||
|
||||
if ($stmt->execute()) {
|
||||
echo json_encode(['status' => 'ok', 'message' => 'Data berhasil diperbarui!']);
|
||||
} else {
|
||||
echo json_encode(['status' => 'error', 'message' => 'Gagal update: ' . $stmt->error]);
|
||||
}
|
||||
$stmt->close();
|
||||
exit;
|
||||
}
|
||||
|
||||
// ============================================================
|
||||
// UPDATE KOORDINAT SAJA — khusus drag marker
|
||||
// ============================================================
|
||||
if ($aksi === 'update_koord') {
|
||||
$id = intval($_POST['id'] ?? 0);
|
||||
$koord = $_POST['koordinat'] ?? '';
|
||||
|
||||
if (!$id || !$koord) {
|
||||
echo json_encode(['status' => 'error', 'message' => 'ID dan koordinat wajib ada!']);
|
||||
exit;
|
||||
}
|
||||
|
||||
$stmt = $conn->prepare("UPDATE geometri_sigma SET koordinat=? WHERE id=?");
|
||||
$stmt->bind_param('si', $koord, $id);
|
||||
if ($stmt->execute()) {
|
||||
echo json_encode(['status' => 'ok', 'message' => 'Koordinat diperbarui!']);
|
||||
} else {
|
||||
echo json_encode(['status' => 'error', 'message' => 'Gagal: ' . $stmt->error]);
|
||||
}
|
||||
$stmt->close();
|
||||
exit;
|
||||
}
|
||||
|
||||
// ============================================================
|
||||
// DELETE — Hapus berdasarkan ID
|
||||
// ============================================================
|
||||
if ($aksi === 'hapus') {
|
||||
$id = intval($_POST['id'] ?? $_GET['id'] ?? 0);
|
||||
if (!$id) {
|
||||
echo json_encode(['status' => 'error', 'message' => 'ID tidak valid!']);
|
||||
exit;
|
||||
}
|
||||
|
||||
$stmt = $conn->prepare("DELETE FROM geometri_sigma WHERE id=?");
|
||||
$stmt->bind_param('i', $id);
|
||||
if ($stmt->execute()) {
|
||||
echo json_encode(['status' => 'ok', 'message' => 'Data berhasil dihapus!']);
|
||||
} else {
|
||||
echo json_encode(['status' => 'error', 'message' => 'Gagal hapus: ' . $stmt->error]);
|
||||
}
|
||||
$stmt->close();
|
||||
exit;
|
||||
}
|
||||
|
||||
// ── Default: aksi tidak dikenali ─────────────────────
|
||||
echo json_encode(['status' => 'error', 'message' => "Aksi '$aksi' tidak dikenali."]);
|
||||
Reference in New Issue
Block a user