ชนิดของคำถาม - วันที่
From LimeSurvey Manual
คำอธิบายโดยย่อ
ชนิดของคำถามนี้ใช้สำหรับถามวันที่ เวลา หรือทั้งวันที่และเวลาร่วมกัน ผู้เข้าร่วมสามารถเลือกค่าได้จากปฏิทินแบบป๊อปอัปหรือจากช่องเลือกแบบดึงลง ผู้ดูแลระบบแบบสำรวจสามารถกำหนดการตรวจสอบ วันที่ขั้นต่ำ และ/หรือวันที่สูงสุด ได้ โดยมีการรองรับรูปแบบวันที่และเวลาที่หลากหลาย

ตัวอย่าง: Example_Date_Time.zip
ตัวเลือกทั่วไป
จำเป็นต้องตอบ
รายละเอียด
ตัวเลือกนี้ช่วยให้ผู้ดูแลแบบสำรวจสามารถกำหนดให้ผู้ตอบแบบสำรวจต้องตอบคำถามบางข้อได้ หากไม่ตอบคำถามที่จำเป็นต้องตอบ ผู้ตอบจะไม่สามารถดำเนินการต่อได้ หากคุณมีคำถามที่มีคำถามย่อยหลายข้อ และต้องการให้ตอบเฉพาะคำถามย่อยบางข้อ ให้ใช้แอตทริบิวต์ จำนวนคำตอบขั้นต่ำ ซึ่งอยู่ในแท็บ ตรรกะ
ตัวเลือกที่มี
- เปิด - ต้องตอบคำถามก่อนที่ผู้เข้าร่วมจะไปยังหน้าถัดไปได้ - ตัวเลือกคำตอบ 'ไม่มีคำตอบ' จะไม่แสดงเลย
- ซอฟต์ - หากไม่ได้ตอบคำถาม ระบบจะแสดงคำเตือนเมื่อพยายามไปยังหน้าถัดไป - อย่างไรก็ตาม ผู้เข้าร่วมสามารถเลือกที่จะไม่สนใจคำเตือนและดำเนินการต่อได้ โปรดทราบว่าตัวเลือก 'ไม่มีคำตอบ' ยังคงแสดงอยู่ (หากเปิดใช้งานในการตั้งค่าการนำเสนอแบบสำรวจ)
- ปิด (ค่าเริ่มต้น) - สามารถปล่อยคำถามให้ไม่มีคำตอบได้
เงื่อนไข
รายละเอียด
หากค่าผลลัพธ์ของเงื่อนไขเป็น "1" หรือ "true" คำถามจะ "เกี่ยวข้อง" ในบริบทของแบบสำรวจ กล่าวคือ คำถามนั้นจะแสดงให้ผู้เข้าร่วมแบบสำรวจเห็น หากไม่ใช่ คำถามจะถูกซ่อนไว้ คำถามแบบสำรวจทุกข้อสามารถระบุสมการความสัมพันธ์กันได้ ฟังก์ชันนี้เป็นตัวต่อยอดจากเงื่อนไขและรองรับตรรกะเงื่อนไขที่ซับซ้อนกว่ามาก
การเน้นไวยากรณ์
ทุกครั้งที่คุณบันทึกเงื่อนไข ระบบจะประเมินผลและเน้นไวยากรณ์ให้ ข้อผิดพลาดใด ๆ จะแสดงด้วยรหัสสี เพื่อให้คุณตรวจพบและแก้ไขได้อย่างรวดเร็ว
ค่าที่ใช้ได้
- เงื่อนไขใด ๆ ที่ใช้ไวยากรณ์ของ ExpressionScript โดยไม่ต้องมีวงเล็บปีกกาล้อมรอบ
ตัวอย่าง
ต่อไปนี้คือตัวอย่างที่ดีของการเน้นไวยากรณ์
การแสดงผล
การแสดงผลช่องเลือกแบบดึงลง (dropdown_dates)
รายละเอียด
หากเปิดใช้งาน ประเภทคำถามวันที่/เวลา จะแสดงช่องดรอปดาวน์ให้ผู้ตอบแบบสอบถามเลือกวันที่/เวลา แทนป๊อปอัปเริ่มต้น
ตัวเลือกที่มี
- เปิด
- ปิด (ค่าเริ่มต้น)
ตัวอย่าง
หากเปิดใช้งาน คำถามจะแสดงผลดังนี้:

งดการแสดงคำอธิบายเสริม (hide_tip)
รายละเอียด
คำถามส่วนใหญ่มักจะมีคำแนะนำที่ระบุว่า "กรุณาเลือกหนึ่งในตัวเลือกต่อไปนี้" หรือข้อความช่วยเหลือเกี่ยวกับวิธีตอบคำถาม แอตทริบิวต์นี้ช่วยให้คุณเปิดหรือปิดการแสดงคำแนะนำ/ข้อความช่วยเหลือเหล่านี้ได้
คำแนะนำ/ข้อความช่วยเหลือเหล่านี้รวมถึงข้อความเกณฑ์การตรวจสอบ (เช่น จำนวนคำตอบขั้นต่ำ/สูงสุด ค่าผลรวมขั้นต่ำ/สูงสุด/เท่ากับผลรวม) หากเปิดใช้งาน hide_tip ข้อความเหล่านี้จะถูกซ่อนไว้ อย่างไรก็ตาม หากผู้ใช้กรอกข้อมูลไม่ถูกต้อง คำแนะนำจะปรากฏขึ้น โดยจะแสดงเป็นสีแดง และเปลี่ยนเป็นสีเขียวเมื่อเป็นไปตามเกณฑ์การตรวจสอบแล้ว
ตัวเลือกที่มี
- เปิด - ซ่อนคำแนะนำ/ข้อความช่วยเหลือ;
- ปิด (ค่าเริ่มต้น)
รูปแบบการแสดงผลเดือน (month_display_style)
รายละเอียด
ผู้ตอบแบบสอบถามสามารถเห็นเดือนได้ 3 รูปแบบ ได้แก่ ชื่อย่อ (ม.ค., ก.พ. เป็นต้น) ชื่อเต็ม (มกราคม, กุมภาพันธ์ เป็นต้น) หรือตัวเลขที่แสดงลำดับของเดือนในปฏิทินประจำปี (01 สำหรับมกราคม, 02 สำหรับกุมภาพันธ์ และเป็นเช่นนี้ต่อไป)
ตัวเลือกที่ใช้ได้
- ชื่อย่อ
- ชื่อเต็ม
- ตัวเลข
กลับลำดับคำตอบ (reverse)
รายละเอียด
หากเปิดใช้งาน ลำดับของคำตอบจะถูกกลับด้าน
ตัวเลือกที่มี
- เปิด
- ปิด (ค่าเริ่มต้น)
ตัวอย่าง
สมมติว่าคุณต้องการใช้ประเภทคำถาม อาร์เรย์ (ตัวเลข) หากปิดใช้งานตัวเลือกนี้ (ค่าเริ่มต้น) คำตอบที่ผู้เข้าร่วมแบบสำรวจสามารถเลือกได้จะเป็น: "1, 2, 3, ... , 10" หากเปิดใช้งาน การตั้งค่านี้จะกลับลำดับของคำตอบที่มีให้เลือกเป็น: "10, 9, 8, ... , 1"
ธีมคำถาม (question_theme)
รายละเอียด
ช่วยให้คุณสามารถใช้ธีมที่กำหนดเองสำหรับคำถามนั้น ๆ ได้
ตัวเลือกที่มี
- ธีมคำถามที่คุณสร้างขึ้น ซึ่งอยู่ภายใต้ ธีมคำถาม ในแผง ธีม
ดู: ธีมคำถาม
รายละเอียด
หากเปิดใช้งาน คำถามจะถูกซ่อนไว้เสมอ - จะไม่แสดงให้ผู้เข้าร่วมแบบสอบถามเห็น ฟังก์ชันนี้สามารถใช้ในกรณีต่อไปนี้:
- หากคุณต้องการกรอกคำตอบล่วงหน้าให้กับคำถามผ่าน URL และไม่ต้องการให้คำถามนั้นแสดงบนหน้าจอ การตั้งค่านี้จะแทนที่เงื่อนไขใดๆ ที่ใช้ในแบบสำรวจ เนื่องจากคำถามดังกล่าวจะไม่ถูกฝังอยู่ในหน้าเลย
- หากคุณต้องการจัดเก็บหรือคำนวณค่าแบบทันทีผ่าน ExpressionScript - การนำเสนอ
ตัวเลือกที่มี
- เปิด
- ปิด (ค่าเริ่มต้น)
คลาส CSS (css_class)
รายละเอียด
หากต้องการเพิ่มคลาส CSS พิเศษให้กับคำถามบางข้อ คุณสามารถป้อนชื่อคลาส CSS ในช่องนี้ โดยต้องเว้นวรรคระหว่างชื่อคลาสแต่ละชื่อ
ค่าที่ใช้ได้
- สตริงข้อความใดก็ได้ โดยเว้นวรรคระหว่างชื่อคลาส CSS แต่ละชื่อ
อย่างน้อยวันที่ (date_min)
รายละเอียด
คุณสมบัติของคำถามนี้ใช้กำหนดค่าต่ำสุดสำหรับคำถามประเภทวันที่ (ในรูปแบบ y-m-d หรือสตริงภาษาอังกฤษที่ถูกต้อง - ดูรายละเอียดเพิ่มเติมด้านล่าง) สามารถใช้ได้กับตัวเลือกการแสดงผลทั้งแบบป๊อปอัปและแบบดรอปดาวน์ หากไม่ได้กำหนดวันที่ขั้นต่ำ ระบบจะใช้ 1.1.1900 เป็นค่าเริ่มต้น
ค่าที่ใช้ได้
- ค่าวันที่ใดก็ได้ในรูปแบบ YYYY-MM-DD (เช่น 2017-08-24);
- ค่าปีใดก็ได้;
- สตริงภาษาอังกฤษ ใดก็ได้ : "now", "-10 years", "tomorrow";
- การอ้างอิงถึงคำถามวันที่/เวลาอื่น : AnotherDateQuestion (โดยใช้รหัสคำถาม);
- นิพจน์ : ด้วยนิพจน์ คุณสามารถคำนวณวันที่ขั้นต่ำแบบไดนามิกได้ ตัวอย่างเช่น คุณสามารถใช้วันที่จากคำตอบก่อนหน้า + 3 วัน เป็นค่าต่ำสุดสำหรับคำถามปัจจุบัน โดยป้อนว่า: date("Y-m-d",strtotime(departuredate)+3*60*60*24)
วันที่สูงสุด (date_max)
รายละเอียด
คุณสมบัติของคำถามนี้ใช้สำหรับกำหนดค่าสูงสุดของคำถามประเภทวันที่ (ในรูปแบบ y-m-d หรือสตริงภาษาอังกฤษที่ถูกต้องอื่น ๆ - ดูตัวเลือกเพิ่มเติมด้านล่าง) สามารถใช้ได้กับทั้งตัวเลือกการแสดงผลแบบป๊อปอัปและแบบดรอปดาวน์
ค่าที่ใช้ได้
- ค่าวันที่ใดก็ได้ในรูปแบบ YYYY-MM-DD (เช่น 2018-08-24);
- ค่าปีใดก็ได้;
- สตริงภาษาอังกฤษใดก็ได้ เช่น "now", "-10 years", "tomorrow";
- การอ้างอิงถึงคำถามวันที่/เวลาอื่น : AnotherDateQuestion (โดยใช้รหัสคำถาม);
- นิพจน์: ด้วยนิพจน์ คุณสามารถคำนวณวันที่แบบไดนามิกได้ ตัวอย่างเช่น คุณสามารถใช้วันที่จากคำตอบก่อนหน้า + 3 วัน เป็นวันที่สูงสุดสำหรับคำถามปัจจุบันได้ โดยป้อน: date("Y-m-d",strtotime(departuredate)+3*60*60*24)
วิธีใช้ความสัมพันธ์กันสำหรับแบบสำรวจที่พิมพ์ได้ (printable_survey_relevance_help)
รายละเอียด
หากคุณต้องการพิมพ์แบบสำรวจ คุณสามารถพิมพ์สมการความสัมพันธ์กันของแต่ละคำถามได้ด้วย แต่หากต้องการให้แสดงคำอธิบายแทนนิพจน์บนแบบฟอร์มที่พิมพ์ ให้กรอกคำอธิบายของสมการความสัมพันธ์กันในช่องนี้
ค่าที่ใช้ได้
- ข้อความและ/หรือตัวเลขใดก็ได้ที่คุณต้องการให้แสดงบนแบบฟอร์มที่พิมพ์ได้
อินพุต
รูปแบบวันที่/เวลา
รายละเอียด
ตัวเลือกคำถามนี้ใช้สำหรับกำหนดรูปแบบวันที่แบบกำหนดเอง หากเว้นว่างไว้ ระบบจะใช้รูปแบบวันที่ของแบบสำรวจ
ค่าที่ใช้ได้
- สามารถใช้รูปแบบ d/dd, m/mm, yy/yyyy, H/HH, M/MM เพื่อแสดงวันที่และ/หรือเวลา โดยใช้ "-", ".", "/", ":" เป็นตัวคั่นได้
ตัวอย่าง
- yyyy-mm-dd - ปี-เดือน-วัน;
- dd.mm.yyyy HH:MM - วัน.เดือน.ปี ชั่วโมง:นาที;
- HH:MM - ชั่วโมง:นาที (เลือกได้เฉพาะเวลา);
- yyyy/mm - ปี/เดือน.
ช่วงเวลาขั้นตอนนาที (minute_step_interval)
รายละเอียด
ใช้เฉพาะเมื่อรูปแบบการป้อนข้อมูลมีการใช้นาที ("MM")
ค่าที่ใช้ได้
- ค่าตัวเลขใดๆ ที่ น้อยกว่า 60 การระบุค่าที่มากกว่า 60 ไม่มีประโยชน์ -> ดรอปดาวน์จะแสดงเฉพาะ "0" หรือ "00" เป็นคำตอบที่เลือกได้
ตัวอย่าง
ในตัวอย่างด้านล่าง ตัวเลือกช่วงเวลาขั้นตอนนาทีถูกตั้งค่าเป็น 7:

ตรรกะ
ชื่อกลุ่มแบบสุ่ม (random_group)
รายละเอียด
ใช้จัดคำถามให้อยู่ในกลุ่มแบบสุ่มที่ระบุ โดยคำถามทั้งหมดในกลุ่มที่ระบุจะแสดงให้ผู้ตอบแบบสำรวจเห็นในลำดับแบบสุ่ม
คุณสามารถดูตัวอย่างแบบสำรวจที่ใช้ชื่อกลุ่มแบบสุ่มได้ใน ตัวอย่างแบบสำรวจ ExpressionScript
ค่าที่ใช้ได้
เพียงป้อนสตริงใดก็ได้ตามต้องการ (เช่น 'group1') คำถามทั้งหมดที่ตั้งสตริงเดียวกันไว้ในช่อง ชื่อกลุ่มแบบสุ่ม จะถูกสุ่มตำแหน่งในแบบสำรวจ (=สลับตำแหน่งกันแบบสุ่ม)
ดูตัวอย่าง
หากต้องการดูตัวอย่างคำถาม ให้ใช้ฟังก์ชัน ดูตัวอย่างแบบสำรวจ แทนฟังก์ชัน แสดงตัวอย่างกลุ่มคำถาม เนื่องจากมีรายงานว่าฟังก์ชันหลังไม่แสดงคำถามในลำดับแบบสุ่ม
สมการการตรวจสอบของคำถาม (em_validation_q)
รายละเอียด
นี่คือสมการที่ใช้ตรวจสอบทั้งคำถาม (เช่น ทุกส่วนของคำถามแบบหลายคำตอบรวมกัน) หากคำถามไม่ผ่านเกณฑ์การตรวจสอบ ระบบจะแสดงข้อความ em_validation_q_tip (ใช้สไตล์ CSS .error) คำแนะนำนี้ใช้สไตล์ CSS .em_q_fn_validation ซึ่งถูกซ่อนไว้โดยค่าเริ่มต้นใน template.css
ความแตกต่างหลักระหว่างฟีเจอร์นี้กับสมการการตรวจสอบของคำถามย่อย (ตัวเลือก em_validation_sq) คือ ในฟีเจอร์นี้ หากคำถาม (หรือบางส่วนของคำถาม) ไม่ผ่านการตรวจสอบ ระบบสามารถแสดงข้อความแจ้งข้อผิดพลาดได้ ส่วนการตรวจสอบของคำถามย่อย ช่องกรอกข้อความแต่ละช่อง (เช่น ในคำถามประเภทอาร์เรย์ แต่ก็ใช้กับคำถามประเภทที่มีช่องกรอกเดียวได้เช่นกัน) จะถูกกำหนดสไตล์ให้สีพื้นหลังเป็นสีแดง (อ่อน)
ค่าที่ใช้ได้
- สมการใดๆ ที่ใช้ไวยากรณ์ของ ExpressionScript โดยไม่ต้องมีวงเล็บปีกกาครอบ
ตัวอย่าง
- คุณต้องการเก็บข้อมูลประชากรศาสตร์จากผู้ใช้ผ่านคำถามแบบข้อความสั้นหลายรายการ และต้องการตรวจสอบว่าผู้ใช้กรอกที่อยู่อีเมลและหมายเลขโทรศัพท์ที่ถูกต้อง
ตัวอย่างนี้แสดงลักษณะของคำถามเมื่อมีคำตอบที่ไม่ถูกต้อง:

และนี่คือลักษณะเมื่อมีคำตอบที่ไม่ถูกต้องเพียงหนึ่งรายการ:

นี่คือวิธีแก้ไขคำถามเพื่อกรอกข้อมูลดังกล่าว:

และนี่คือส่วนหนึ่งของผลลัพธ์จากไฟล์แสดงตรรกะ ซึ่งช่วยให้คุณตรวจสอบความถูกต้องของนิพจน์และตรวจหาข้อผิดพลาดทางไวยากรณ์ได้:

ดังที่เห็น สมการการตรวจสอบจะทดสอบว่าทั้งอีเมลและหมายเลขโทรศัพท์ต้องว่างเปล่าหรือตรงกับตัวกรองนิพจน์ปรกติ
คำแนะนำการตรวจสอบจะแสดงข้อความเตือนก็ต่อเมื่อโทรศัพท์หรืออีเมลดูเหมือนไม่ถูกต้องเท่านั้น
หากคุณต้องการนำเข้าตัวอย่างข้างต้นไปยัง LimeSurvey ที่ติดตั้งของคุณ ให้ดาวน์โหลดไฟล์ .lsq ต่อไปนี้: Em_validation_q_example.zip
เคล็ดลับสำหรับสมการการตรวจสอบของคำถามทั้งข้อ (em_validation_q_tip)
รายละเอียด
หากคุณใช้ สมการการตรวจสอบของคำถาม คุณสามารถใช้ช่องนี้เพื่อแสดงข้อความ (ไม่บังคับ) เป็นเคล็ดลับของคำถาม เพื่อบอกวิธีกรอกคำตอบของคำถามนั้นได้
ค่าที่ใช้ได้
- สตริงหรือสมการใดๆ ที่ใช้ไวยากรณ์ของ ExpressionScript
ตัวอย่าง
ดูตัวอย่างได้จากส่วน สมการการตรวจสอบของคำถาม ในวิกิ ซึ่งแสดงวิธีปรับแต่งเคล็ดลับให้แสดงว่าส่วนใดของคำถามประเภทข้อความสั้นหลายรายการไม่ผ่านเกณฑ์การตรวจสอบ
อื่นๆ
แทรกตัวคั่นหน้าในโหมดการพิมพ์ (page_break)
รายละเอียด
แอตทริบิวต์นี้จะทำงานเฉพาะเมื่อคุณพิมพ์แบบสำรวจจาก มุมมองที่พิมพ์ได้ จริงเท่านั้น โดยจะบังคับให้ขึ้นหน้าใหม่ ก่อน คำถาม
ตัวเลือกที่ใช้ได้
- เปิด
- ปิด (ค่าเริ่มต้น)
สถิติ
แสดงแผนภูมิ (display_chart)
รายละเอียด
แอตทริบิวต์นี้ช่วยให้ผู้ดูแลระบบแบบสำรวจเลือกได้ว่าจะแสดงแผนภูมิที่มีผลลัพธ์ของคำถามให้แก่ผู้เข้าร่วมแบบสอบถามหลังจากที่กรอกแบบสำรวจเสร็จแล้วหรือไม่
- การตั้งค่าแบบสำรวจ เผยแพร่สถิติ จากตั้งค่าการนำเสนอและการนำทาง
- การตั้งค่าแบบสำรวจ แสดงกราฟ จากตั้งค่าการนำเสนอและการนำทาง
- คุณสมบัติของคำถามเผยแพร่สถิติ และ
- คุณสมบัติของคำถามแสดงแผนภูมิ
ตัวเลือกที่มี
- เปิด
- ปิด (ค่าเริ่มต้น)
ประเภทแผนภูมิ (chart_type)
รายละเอียด
แอตทริบิวต์นี้ช่วยให้ผู้ดูแลระบบแบบสำรวจสามารถเลือกประเภทของแผนภูมิที่จะแสดงให้ผู้ตอบเห็นหลังจากที่ตอบแบบสำรวจเสร็จสิ้น
ตัวเลือกที่มี
- แผนภูมิแท่ง
- แผนภูมิวงกลม
- เรดาร์
- เส้น
- PolarArea
- โดนัท
วันที่และ ExpressionScript: การตรวจสอบและการคำนวณขั้นสูง
Limesurvey (เวอร์ชัน 2.05 ขึ้นไป) ทำให้การตรวจสอบวันที่เป็นเรื่องง่ายโดยใช้ฟิลด์ date_min และ date_max (ดูด้านบน) ควรใช้ฟิลด์เหล่านี้ทุกครั้งที่เป็นไปได้ หากคุณต้องการการตรวจสอบขั้นสูงกว่านี้ คุณสามารถทำงานกับวันที่ (และคำนวณ) ได้โดยใช้ ExpressionScript และฟังก์ชัน strtotime() ซึ่งจะคำนวณจำนวนวินาทีนับตั้งแต่วันที่ 1 มกราคม 1970 จนถึงวันที่ที่กำหนด
ตัวอย่าง: หากคุณต้องการแสดงในข้อความคำถามถึงจำนวนวันที่ผ่านไประหว่างวันเดินทางออก (ที่ถามไว้ในคำถามก่อนหน้า) กับวันนี้ คุณสามารถใช้นิพจน์ {(strtotime("now")-strtotime(departure))/60/60/24}
โปรดทราบว่า strtotime() รองรับรูปแบบจำนวนมาก แต่ไม่ใช่ทุกรูปแบบ! ตัวอย่างเช่น รูปแบบวันที่เริ่มต้นของ Limesurvey (MM-DD-YYYY) ไม่ สามารถใช้งานกับ strtotime() ได้ โปรดตั้งค่าแบบสำรวจของคุณให้ใช้รูปแบบวันที่รูปแบบใดรูปแบบหนึ่งต่อไปนี้เพื่อหลีกเลี่ยงปัญหา: YYYY-MM-DD, YYYY/MM/DD, DD.MM.YYYY, MM/DD/YYYY หรือ DD-MM-YYYY
