รายการแบบลำดับขั้น
listProvinces, listAmphures และ listTambons สำหรับ dropdown จังหวัด → อำเภอ → ตำบล
ฟังก์ชันชุดนี้แสดงรายการที่อยู่ทีละระดับ สำหรับ dropdown ที่ให้เลือกจังหวัด แล้วอำเภอ แล้วตำบล ข้อมูลอ่านจากการจัดกลุ่มที่สร้างไว้พร้อม index จึงเรียกทุกครั้งที่ค่าเปลี่ยนได้โดยไม่กระทบ performance
import { listProvinces, listAmphures, listTambons } from 'thaizip'
const provinces = listProvinces(index) // ทั้ง 77 จังหวัด
const districts = listAmphures(index, provinceId)
const subdistricts = listTambons(index, amphureId) // แต่ละตำบลมี zipCode| ฟังก์ชัน | คืนค่า |
|---|---|
listProvinces(index) | ProvinceSummary[] เรียงตามชื่อไทย |
listAmphures(index, provinceId) | AmphureSummary[] ในจังหวัดนั้น เรียงตามชื่อไทย |
listTambons(index, amphureId) | TambonSummary[] ในอำเภอนั้น เรียงตามชื่อไทย |
type ProvinceSummary = { id: number; nameTh: string; nameEn: string }
type AmphureSummary = { id: number; nameTh: string; nameEn: string; provinceId: number }
type TambonSummary = { id: number; nameTh: string; nameEn: string; amphureId: number; zipCode: string }id ที่ไม่มีอยู่ เช่น 0 ก่อนเลือกอะไร จะได้ [] แทนการ throw เมื่อเปลี่ยนตัวเลือกระดับบน ให้ reset id ระดับล่าง แล้วรายการจะว่างเอง
ถ้าต้องการคอมโพเนนต์สำเร็จรูปที่ใช้ฟังก์ชันเหล่านี้ ดู cascade select