Days
Hours
Minutes
Seconds

Promo Grand Opening

15% OFF

Khusus Pelanggan Baru

  • Home /
  • Blog /
  • JQuery /
  • Tutorial JQuery #14: Input Data ke Database dengan AJAX JQuery (Tanpa Reload)

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

Tentu, ini artikel yang Anda minta:


 

 

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.

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