Bisa. Bahkan ini sangat umum digunakan pada dashboard laporan keuangan.
Caranya adalah membuat 2 input tanggal:
<div class="row">
<div class="col-6">
<input type="date" id="tgl_awal" class="form-control">
</div>
<div class="col-6">
<input type="date" id="tgl_akhir" class="form-control">
</div>
</div>
<div id="hasil"></div>
Javascript (Tanpa Submit)
Setiap kali salah satu tanggal berubah, data langsung diambil.
<script>
function loadData(){
let awal = document.getElementById('tgl_awal').value;
let akhir = document.getElementById('tgl_akhir').value;
if(awal && akhir){
fetch(`laporan.php?awal=${awal}&akhir=${akhir}`)
.then(response => response.text())
.then(data => {
document.getElementById('hasil').innerHTML = data;
});
}
}
document.getElementById('tgl_awal')
.addEventListener('change', loadData);
document.getElementById('tgl_akhir')
.addEventListener('change', loadData);
</script>
PHP
Misal file laporan.php
<?php
include 'koneksi.php';
$awal = $_GET['awal'];
$akhir = $_GET['akhir'];
$query = mysqli_query($koneksi,"
SELECT *
FROM pembayaran
WHERE tanggal BETWEEN '$awal' AND '$akhir'
ORDER BY tanggal
");
while($row=mysqli_fetch_assoc($query)){
echo "<div>";
echo $row['tanggal']." - ";
echo $row['nama']." - ";
echo number_format($row['jumlah']);
echo "</div>";
}
Untuk Dashboard Ringkasan
Misal Anda ingin otomatis mengubah:
- Total pemasukan
- Jumlah transaksi
- Total tunggakan
Gunakan JSON.
PHP
<?php
include 'koneksi.php';
$awal = $_GET['awal'];
$akhir = $_GET['akhir'];
$q = mysqli_query($koneksi,"
SELECT
SUM(jumlah) total,
COUNT(*) transaksi
FROM pembayaran
WHERE tanggal BETWEEN '$awal' AND '$akhir'
");
$data = mysqli_fetch_assoc($q);
echo json_encode($data);
Javascript
function loadData(){
let awal = $('#tgl_awal').val();
let akhir = $('#tgl_akhir').val();
if(awal && akhir){
fetch(`summary.php?awal=${awal}&akhir=${akhir}`)
.then(res => res.json())
.then(data => {
$('#total').html(
'Rp ' + Number(data.total).toLocaleString('id-ID')
);
$('#transaksi').html(
data.transaksi
);
});
}
}
Lebih Elegan Lagi: Date Range Picker
Daripada dua input tanggal, gunakan satu input seperti:
01/06/2026 - 30/06/2026
Contohnya:
<input type="text" id="daterange" class="form-control">
Menggunakan plugin:
- Date Range Picker
- Flatpickr
- Litepicker
Tampilannya seperti aplikasi kasir profesional dan laporan keuangan modern.
Contoh:
┌─────────────────────────┐
│ 📅 01 Jun - 30 Jun 2026 │
└─────────────────────────┘
Begitu rentang tanggal dipilih, AJAX langsung memuat ulang:
- Ringkasan pemasukan
- Grafik
- Daftar pembayaran
- Jumlah siswa yang membayar
tanpa tombol submit dan tanpa reload halaman. Ini adalah pola yang paling cocok untuk dashboard TPA/Bimbel yang sedang Anda bangun.
Juni 14, 2026



0 komentar:
Posting Komentar