Latihan 1 dari materi Konfirmasi dan Dialog di HTMX — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.
Kode awal punya <table> dengan satu baris: User 1 dan <button hx-swap="outerHTML">Hapus</button>. Biarkan tabel dan hx-swap-nya, lalu di <button> yang sama:
Tambahkan hx-delete="/api/users/1".
Tambahkan hx-confirm berisi pertanyaan, misalnya hx-confirm="Yakin ingin menghapus user ini?". Teksnya bebas, asal gak kosong.
Tambahkan hx-target="closest tr", supaya yang diganti baris tabel yang memuat tombol itu.
Lalu, di bawah tabel, tulis balasan server untuk request itu:
<template data-url="/api/users/1" data-method="delete"></template>: status 200 (bawaannya) tanpa isi, jadi barisnya diganti kosong dan hilang. Jangan beri data-status="204": htmx gak menukar apa pun untuk 204, dan barisnya tetap terlihat.
Yang dicek:
<button> punya hx-delete persis /api/users/1 dan hx-target persis closest tr.
<button> punya hx-confirm, dan isinya gak kosong.
Ada <template data-url="/api/users/1" data-method="delete">, tanpa data-status="204".
Kodenya memuat hx-confirm, hx-delete, dan closest tr di luar komentar.
Di pratinjau, hx-confirm disetujui otomatis (ada catatan di Console), lalu DELETE /api/users/1 dijawab template-mu, dan baris User 1 hilang.
Hint
Tombolnya butuh tiga hal: alamat DELETE, pertanyaan konfirmasi, dan baris yang diganti. Balasan server ditulis sebagai <template> yang menjawab alamat dan method itu.
hx-delete berisi /api/users/1, hx-confirm berisi pertanyaanmu, dan hx-target berisi closest tr. Template-nya memakai data-url dan data-method delete, tanpa isi dan tanpa data-status, supaya statusnya 200.
<button hx-delete="/api/users/1" hx-confirm="Yakin ingin menghapus user ini?" hx-target="closest tr" hx-swap="outerHTML">Hapus</button> lalu di bawah tabel: <template data-url="/api/users/1" data-method="delete"></template>
</>{ }.css=>#idfn()
Versi baru
HyperSheets
bagian dari BelajarWeb.dev
0%
Membuka gerbang…
HyperSheets
Memperbarui Aplikasi
Versi baru tersedia. Halaman akan dimuat ulang otomatis...