ฟอร์ม
ฝังฟอร์มให้ผู้ใช้กรอกเป็นระเบียนใหม่ หรือเปิดระเบียนที่มีอยู่เพื่อแก้ไขหรือดู
widget ฟอร์ม แสดงฟอร์มหนึ่งฟอร์ม เมื่อผู้ใช้กดส่ง widget บันทึกเป็นระเบียนในตารางของฟอร์ม แล้วบอกหน้าของคุณ ส่วนที่เหลือของข้อตกลง (credential, ready, error) ดู Widgets
URL และพารามิเตอร์
URL คือ <site>/widgets/form ค่า boolean เขียนเป็น true หรือ false
| พารามิเตอร์ | ความหมาย | ต้องมี |
|---|---|---|
item_id | id ของรายการฟอร์ม หรือของรายการตาราง ถ้าเป็นตาราง widget สร้างฟอร์มจากฟิลด์ที่มองเห็นและแก้ได้ | ต้องมี |
data_id | id ของระเบียนที่จะเปิดแก้ไข ไม่ใส่คือสร้างระเบียนใหม่ | ไม่ |
selectable | true เพิ่มช่องให้ผู้ใช้เลือกระเบียนที่จะแก้ ช่องนี้ขึ้นเมื่อฟอร์มเปิดให้แก้ข้อมูลได้และผู้ใช้มีสิทธิ์อัปเดตข้อมูล ค่าตั้งต้น false | ไม่ |
cancelable | แสดงปุ่มปิดและปุ่มยกเลิก ค่าตั้งต้น true | ไม่ |
readonly | true แสดงค่าโดยไม่ให้แก้และไม่มีปุ่มส่ง ค่าตั้งต้น false | ไม่ |
embedded | true ตัดขอบและระยะห่างรอบฟอร์มให้พอดีกับกรอบที่คุณฝัง ค่าตั้งต้น false | ไม่ |
hide_header | true ซ่อนชื่อและคำอธิบายของฟอร์ม ค่าตั้งต้น false | ไม่ |
ข้อความ
| action | ทิศทาง | payload |
|---|---|---|
submitted | widget ถึงหน้าของคุณ | ไม่มี ส่งหลังเซิร์ฟเวอร์บันทึกระเบียนแล้ว |
cancel | widget ถึงหน้าของคุณ | ไม่มี ส่งเมื่อผู้ใช้กดปุ่มปิดหรือปุ่มยกเลิก รวมปุ่มบนหน้าที่แจ้งว่าโหลดฟอร์มไม่ได้ |
error | widget ถึงหน้าของคุณ | { statusCode } เมื่ออ่านรายการไม่ได้ เช่น 403 หรือ 404 |
widget นี้ไม่รับ post-widget-parameters จึงไม่ส่ง ready ใช้ได้เลยหลัง iframe โหลด
submitted ไม่บอก id ของระเบียน ถ้าคุณต้องใช้ ให้อ่านจาก API หรือสร้าง id เอง
หลังส่งสำเร็จ widget แสดงข้อความสำเร็จ และปุ่มกรอกอีกครั้ง (เมื่อไม่ได้ใส่ data_id) widget ไม่ปิดตัวเอง หน้าของคุณเป็นผู้เอา iframe ออก
ตัวอย่าง
ต่อจากตัวอย่างใน Widgets เปลี่ยนชื่อ widget เป็น form และใส่ item_id แล้วฟังข้อความของฟอร์ม
addEventListener('message', (e) => {
if (e.origin !== site || e.data.messageToken !== messageToken) return
if (e.data.action === 'submitted') frame.remove()
if (e.data.action === 'cancel') frame.remove()
})ถ้าต้องวาด geometry ในฟอร์ม
ฟิลด์ geometry ของฟอร์มแสดงเป็นช่อง ตัวแก้ไข geometry ในฟอร์มเอง คุณไม่ต้องฝังมันเพิ่ม ค่าที่ผู้ใช้วาดไปกับระเบียนที่ส่ง