Days
Hours
Minutes
Seconds

Promo Grand Opening

15% OFF

Khusus Pelanggan Baru

Tutorial JQuery #13: Membuat Modal Dialog Tanpa Plugin

Tentu, ini artikel yang Anda minta:


 

Tentu, ini artikel yang Anda minta:


 

Tutorial JQuery #14: Input Data ke Database dengan AJAX JQuery (Tanpa Reload)

 

Dalam pengembangan web modern, pengalaman pengguna (UX) yang mulus sangat penting. Salah satu cara untuk mencapainya adalah dengan mengirim data formulir ke server tanpa memuat ulang halaman (page reload). Teknik ini dikenal sebagai AJAX (Asynchronous JavaScript and XML). Dengan JQuery, proses ini menjadi sangat sederhana.

Dalam tutorial JQuery ke-14 ini, kita akan membahas cara mengirim data dari formulir HTML ke server (PHP) dan menyimpannya di database menggunakan AJAX JQuery.


 

1. Persiapan Sisi Server (PHP)

 

Sebelum kita membuat formulir, kita perlu menyiapkan skrip PHP yang akan menerima data dari JQuery. Skrip ini akan melakukan validasi dan memasukkan data ke database.

 

Koneksi Database

 

Buat file koneksi.php untuk mengelola koneksi ke database Anda.

PHP

<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "nama_database";

// Membuat koneksi
$conn = new mysqli($servername, $username, $password, $dbname);

// Memeriksa koneksi
if ($conn->connect_error) {
    die("Koneksi gagal: " . $conn->connect_error);
}
?>

 

Skrip PHP untuk Memproses Data

 

Buat file simpan_data.php. Skrip ini akan menerima data POST dari AJAX.

PHP

<?php
include 'koneksi.php';

// Menyiapkan array respons
$response = ['success' => false, 'message' => ''];

if ($_SERVER["REQUEST_METHOD"] == "POST") {
    // Mengambil data dari form
    $nama = $conn->real_escape_string($_POST['nama']);
    $email = $conn->real_escape_string($_POST['email']);

    // Validasi sederhana
    if (empty($nama) || empty($email)) {
        $response['message'] = 'Nama dan email tidak boleh kosong.';
    } else {
        // Query untuk menyimpan data
        $sql = "INSERT INTO users (nama, email) VALUES ('$nama', '$email')";

        if ($conn->query($sql) === TRUE) {
            $response['success'] = true;
            $response['message'] = 'Data berhasil disimpan!';
        } else {
            $response['message'] = 'Error: ' . $sql . '<br>' . $conn->error;
        }
    }
} else {
    $response['message'] = 'Permintaan tidak valid.';
}

$conn->close();

// Mengembalikan respons dalam format JSON
header('Content-Type: application/json');
echo json_encode($response);
?>

Skrip ini akan mengembalikan respons dalam format JSON, yang sangat mudah diproses oleh JQuery di sisi klien.


 

2. Persiapan Sisi Klien (HTML & JQuery)

 

Sekarang kita akan membuat formulir dan kode JQuery untuk mengirim data.

 

Formulir HTML

 

Buat file index.html dengan formulir sederhana.

HTML

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Input Data dengan AJAX</title>
</head>
<body>

    <h1>Formulir Pendaftaran</h1>

    <div id="status"></div>

    <form id="myForm">
        <label for="nama">Nama:</label><br>
        <input type="text" id="nama" name="nama" required><br><br>

        <label for="email">Email:</label><br>
        <input type="email" id="email" name="email" required><br><br>

        <button type="submit">Kirim Data</button>
    </form>

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
    <script>
        // Kode JQuery akan diletakkan di sini
    </script>
</body>
</html>

 

Kode JQuery

 

Sekarang tambahkan kode JQuery di dalam tag <script>.

JavaScript

$(document).ready(function() {

    // Menangani pengiriman formulir saat event 'submit'
    $('#myForm').submit(function(e) {
        e.preventDefault(); // Mencegah form melakukan submit standar (page reload)

        var form = $(this);
        var url = form.attr('action') || 'simpan_data.php';
        var data = form.serialize(); // Mengambil data form

        $.ajax({
            type: "POST", // Metode pengiriman data
            url: url, // URL tujuan
            data: data, // Data yang akan dikirim
            dataType: 'json', // Tipe data yang diharapkan dari server

            success: function(response) {
                // Fungsi yang dijalankan jika permintaan berhasil
                if (response.success) {
                    $('#status').text(response.message).css('color', 'green');
                    form[0].reset(); // Mengosongkan formulir setelah berhasil
                } else {
                    $('#status').text(response.message).css('color', 'red');
                }
            },

            error: function(xhr, status, error) {
                // Fungsi yang dijalankan jika terjadi error
                $('#status').text('Terjadi kesalahan: ' + error).css('color', 'red');
                console.log(xhr.responseText);
            }
        });
    });
});

Pada kode di atas:

  • e.preventDefault(): Ini adalah baris kode terpenting. Ini akan menghentikan formulir dari perilaku aslinya, yaitu memuat ulang halaman setelah tombol submit diklik.
  • form.serialize(): Metode ini mengumpulkan semua data dari elemen input di dalam formulir dan mengubahnya menjadi string format URL-encoded yang siap dikirim.
  • $.ajax({ ... });: Ini adalah metode inti JQuery untuk melakukan permintaan AJAX.
    • type: "POST": Mengatur metode HTTP ke POST.
    • url: url: Menentukan alamat skrip PHP yang akan menerima data.
    • data: data: Meneruskan data formulir yang sudah di-serialize.
    • dataType: 'json': Memberitahu JQuery untuk mengharapkan respons dalam format JSON dari server.
  • success dan error: Ini adalah callback function. success akan dijalankan jika permintaan berhasil, dan error jika ada masalah, seperti server tidak merespons atau status HTTP error.

 

Kesimpulan

 

Menggunakan AJAX JQuery untuk mengirim data formulir ke database adalah teknik yang kuat untuk meningkatkan interaktivitas dan pengalaman pengguna. Dengan pendekatan ini, Anda dapat memvalidasi data, menyimpan ke database, dan menampilkan respons kepada pengguna secara real-time, semuanya tanpa mengganggu alur kerja mereka dengan memuat ulang halaman.

 

Modal dialog, atau sering disebut pop-up, adalah elemen UI yang sangat umum digunakan di website untuk menampilkan informasi penting, formulir, atau konfirmasi tanpa harus mengarahkan pengguna ke halaman lain. Meskipun banyak plugin JQuery yang tersedia, membuat modal dialog dari nol menggunakan JQuery murni adalah cara terbaik untuk memahami cara kerjanya dan memiliki kontrol penuh atas desain dan fungsionalitasnya.

Dalam tutorial JQuery ke-13 ini, kita akan membuat modal dialog sederhana tanpa menggunakan plugin apa pun.


 

1. Persiapan Struktur HTML dan CSS

 

Langkah pertama adalah membuat struktur HTML dasar untuk modal dan gaya CSS-nya. Modal terdiri dari dua bagian utama: overlay (latar belakang gelap) dan modal content (kotak konten utama).

 

Struktur HTML

 

Tambahkan kode HTML berikut di akhir <body> Anda. Pastikan modal berada di luar elemen lain untuk menghindari masalah tata letak.

HTML

<button id="openModalBtn">Buka Modal</button>

<div id="myModal" class="modal">
  <div class="modal-content">
    <span class="close-btn">&times;</span>
    <h2>Judul Modal</h2>
    <p>Ini adalah isi dari modal dialog sederhana.</p>
    <p>Anda bisa menempatkan formulir, gambar, atau teks apa pun di sini.</p>
  </div>
</div>

 

Gaya CSS

 

Sekarang, kita akan memberikan gaya agar modal terlihat seperti dialog sungguhan.

CSS

/* Latar belakang gelap (overlay) */
.modal {
  display: none; /* Sembunyikan secara default */
  position: fixed; /* Tetap di layar, bahkan saat di-scroll */
  z-index: 1; /* Posisikan di atas konten lain */
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  overflow: auto; /* Aktifkan scroll jika kontennya terlalu panjang */
  background-color: rgba(0,0,0,0.7); /* Warna latar belakang gelap dengan transparansi */
}

/* Kotak konten modal */
.modal-content {
  background-color: #fefefe;
  margin: 15% auto; /* Tengah vertikal dan horizontal */
  padding: 20px;
  border: 1px solid #888;
  width: 80%; /* Lebar kotak modal */
  max-width: 500px; /* Batasi lebar maksimum */
  border-radius: 8px;
}

/* Tombol Tutup */
.close-btn {
  color: #aaa;
  float: right;
  font-size: 28px;
  font-weight: bold;
}

.close-btn:hover,
.close-btn:focus {
  color: #000;
  text-decoration: none;
  cursor: pointer;
}

 

2. Mengaktifkan Modal dengan JQuery

 

Setelah struktur dan gaya siap, kita akan menggunakan JQuery untuk menambahkan fungsionalitas: membuka modal saat tombol diklik dan menutupnya saat tombol tutup atau area overlay diklik.

 

Kode JQuery

 

Tambahkan kode berikut di dalam tag <script> atau di file JavaScript Anda. Pastikan JQuery sudah dimuat di halaman.

JavaScript

$(document).ready(function() {

  var modal = $('#myModal'); // Ambil elemen modal
  var btn = $('#openModalBtn'); // Ambil tombol pembuka
  var span = $('.close-btn'); // Ambil tombol tutup

  // Ketika tombol diklik, tampilkan modal
  btn.click(function() {
    modal.css('display', 'block');
  });

  // Ketika tombol tutup (x) diklik, sembunyikan modal
  span.click(function() {
    modal.css('display', 'none');
  });

  // Ketika pengguna mengklik di luar area modal, sembunyikan modal
  $(window).click(function(event) {
    if (event.target.id == 'myModal') {
      modal.css('display', 'none');
    }
  });

});

 

Penjelasan Kode

 

  • $(document).ready(function() { ... });: Ini memastikan bahwa kode JQuery kita hanya berjalan setelah seluruh dokumen HTML selesai dimuat.
  • var modal = $('#myModal');: Kita menggunakan selektor ID untuk mendapatkan elemen modal. Menyimpannya dalam variabel membuat kode lebih rapi dan efisien.
  • btn.click(function() { ... });: Ketika tombol dengan ID openModalBtn diklik, kita mengubah properti display modal menjadi block menggunakan metode .css() JQuery, yang membuatnya terlihat.
  • span.click(function() { ... });: Ketika tombol tutup (.close-btn) diklik, kita mengubah properti display modal kembali ke none, yang menyembunyikannya.
  • $(window).click(function(event) { ... });: Ini adalah bagian krusial yang memungkinkan modal ditutup saat pengguna mengklik di luar kotak konten. Kita menggunakan event.target.id untuk memeriksa apakah elemen yang diklik adalah elemen overlay modal itu sendiri (myModal). Jika ya, kita sembunyikan modal.

 

Kesimpulan

 

Membuat modal dialog sederhana tanpa plugin adalah cara yang sangat baik untuk melatih keterampilan JQuery Anda dan memahami dasar-dasar manipulasi DOM. Pendekatan ini memberi Anda fleksibilitas penuh untuk menyesuaikan desain dan fungsionalitas sesuai kebutuhan aplikasi Anda.

Wawasan Terbaru

Gemini_Generated_Image_wfw5uwwfw5uwwfw5
Mengenal Dunia Grafis: Dari Piksel Hingga Vektor, Kekuatan Visual di Era Digital
Gemini_Generated_Image_b6dimfb6dimfb6di
Mengenal Foundation: Kerangka Kerja Front-End Profesional untuk Web Responsif
Gemini_Generated_Image_sx3ztpsx3ztpsx3z
CSS
Mempercantik Website dengan CSS: Seniman di Balik Tampilan Web 🎨
Gemini_Generated_Image_e013qke013qke013
Mengenal HTML: Fondasi dari Setiap Halaman Website 🌐
Gemini_Generated_Image_ldki4nldki4nldki
Menyelami Dunia Coding: Seni Berbicara dengan Komputer
Gemini_Generated_Image_dpvliydpvliydpvl
Menguasai GIT: Fondasi Penting dalam Dunia Pengembangan Perangkat Lunak
Gemini_Generated_Image_sqcib9sqcib9sqci
Tutorial Python #12: Mengenal Jenis-jenis Operator dalam Python
Gemini_Generated_Image_o1bw3do1bw3do1bw
Memahami Tipe Data Dictionary dalam Python
Gemini_Generated_Image_ko4ixfko4ixfko4i
Mengenal Tipe Data Set dalam Python
Gemini_Generated_Image_1xop7m1xop7m1xop
Tuple dalam Python: Pengenalan dan Tutorial

Wawasan Serupa

Gemini_Generated_Image_nvbx4anvbx4anvbx
Gemini_Generated_Image_astlj2astlj2astl
Gemini_Generated_Image_esblmjesblmjesbl
Gemini_Generated_Image_jix690jix690jix6

Ceritakan Detail Proyekmu

Mulai dari 30K aja, solusi IT kamu langsung jalan tanpa drama.

Kata Mereka Tentang Solusi Coding

Dipercaya oleh lebih dari 200++ client untuk menyelesaikan proyeknya dengan total 250++ proyek dari berbagai jenis proyek