thaizip

รายการแบบลำดับขั้น

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