ตัวอย่างแบบสำรวจของ Expression Manager
From LimeSurvey Manual
บทนำ
วิธีที่ดีที่สุดในการเรียนรู้การใช้งาน ExpressionScript คือการทดลองใช้ตัวอย่างที่ใช้งานได้จริง และปรับแก้ให้เหมาะกับความต้องการของคุณ
ด้านล่างนี้คุณจะพบชุดตัวอย่างแบบสำรวจที่แสดง (และใช้ทดสอบ) วิธีที่สามารถใช้ EM เพื่อเพิ่มประสิทธิภาพให้กับแบบสำรวจของคุณ คุณสามารถพบแบบสำรวจเหล่านี้ได้ในโฟลเดอร์ /docs/demosurveys ของชุดติดตั้ง
ความสัมพันธ์กัน การปรับแต่งข้อความ และสมการ
ภาพรวม
ตัวอย่างต่อไปนี้คำนวณ BMI (ดัชนีมวลกาย) ของผู้ตอบแต่ละคน ดูคุณสมบัติที่แสดงในตัวอย่างนี้ได้ด้านล่าง
คุณสมบัติของ EM ที่แสดงในตัวอย่าง
- ความสัมพันธ์กัน - รองรับตรรกะแบบมีเงื่อนไขที่ทรงพลัง;
- Piping / Tailoring - ช่วยให้สามารถดึงหรือปรับแต่งคำตอบและข้อมูลเมตาของคำถามได้;
- Dynamic Tailoring - สังเกตว่ารายงานจะเปลี่ยนไปบนหน้าเว็บขณะที่คุณตอบคำถาม
- Micro-Tailoring - การปรับแต่งแบบมีเงื่อนไขภายในประโยคและรายงานโดยใช้คำสั่ง if()
- สมการ - ประเภทคำถามใหม่ที่ช่วยให้คุณคำนวณและจัดเก็บผลลัพธ์ในฐานข้อมูลได้ แม้การคำนวณนั้นจะถูกซ่อนไว้
- Conditional Validation - เกณฑ์การตรวจสอบ เช่น ค่าขั้นต่ำที่อนุญาต สามารถกำหนดเป็นแบบมีเงื่อนไขได้ เช่น อิงตามสมการ
ภาพหน้าจอ
ตัวอย่างนี้คำนวณดัชนีมวลกาย (BMI) จากน้ำหนักและส่วนสูงของคุณเพื่อดูว่าคุณมีน้ำหนักเกินหรือไม่ โปรดสังเกตว่าในตอนแรกคุณจะเห็นเพียงคำถามที่จำเป็นสี่ข้อเท่านั้น:

เมื่อคุณกรอกข้อมูลของคุณ (และเลือกได้ว่าจะใช้หน่วยเมตริกหรือไม่ใช่เมตริก) คุณจะเห็นรายงานที่ปรับแต่งให้ ซึ่งสรุปข้อมูลที่คุณกรอกและบอกสถานะน้ำหนักของคุณ:

นี่คืออีกตัวอย่างหนึ่ง โดยใช้หน่วยที่ไม่ใช่เมตริกเพื่อแสดงให้เห็นว่าผลลัพธ์เปลี่ยนแปลงแบบไดนามิกอย่างไร:

ในระดับภายในมีคำถามประเภทสมการที่ซ่อนอยู่ ซึ่งแปลงข้อมูลเป็นหน่วยเมตริก (หากจำเป็น) และจัดเก็บส่วนสูง น้ำหนัก BMI และสถานะน้ำหนักในหน่วยเมตริกไว้ในฐานข้อมูลโดยไม่ต้องใช้ JavaScript แบบกำหนดเอง
ในตัวอย่างชุดถัดไป คุณจะเห็นวิธีใช้ฟังก์ชันทางคณิตศาสตร์และฟังก์ชันอื่น ๆ ภายในรายงานที่ปรับแต่งให้ นี่คือลักษณะของหน้าก่อนที่คุณจะกรอกข้อมูลใด ๆ มีตรรกะแบบมีเงื่อนไขเพื่อแสดงเซลล์ว่างหากไม่มีการกรอกข้อมูล (หรือกรอกข้อมูลที่ไม่ใช่ตัวเลข) แทนที่จะแสดง "NaN" หรือ "Divide by Zero"

เมื่อมีการกรอกตัวเลข รายงานบนหน้าจะเปลี่ยนไปเพื่อแสดงการคำนวณที่กำลังดำเนินการและผลลัพธ์

ยังมีตัวอย่างอื่น ๆ อีกมากมายในแบบสำรวจตัวอย่างนี้ ตัวอย่างเช่น ภาพหน้าจอด้านล่างแสดงหนึ่งในหลายสิบวิธีที่คุณสามารถกรอกหน้า Dynamic Relevance ดังที่ข้อความช่วยเหลือระบุไว้ ลองใส่อายุต่าง ๆ และโดยเฉพาะการผสมคำตอบที่ขัดแย้งกันเพื่อดูข้อความตลก ๆ ที่แสดงขึ้นที่ด้านล่าง นอกจากนี้ โปรดสังเกตว่าหากคุณระบุว่ามีลูกมากกว่าหนึ่งคน ข้อความจะแสดงว่า "I hope you enjoy playing with your X children" แทนที่จะเป็น "I hope you enjoy playing with your child" ซึ่งแสดงให้เห็นว่าคุณสามารถปรับแต่งประโยคแบบ micro-tailor ให้ตรงกับเพศและ/หรือจำนวนของกลุ่มตัวอย่างได้อย่างง่ายดาย คุณยังสามารถผันคำกริยาและเปลี่ยนรูปคำนามตามเพศและจำนวนได้อย่างง่ายดายอีกด้วย

ดาวน์โหลด
หากต้องการเข้าถึงแบบสำรวจตัวอย่าง โปรดคลิกลิงก์ต่อไปนี้: LS3_em_tailoring.zip
ตัวอย่างสำมะโน
ภาพรวม
นี่คือตัวอย่างสำมะโนที่ถามว่ามีกี่คนในครัวเรือนของคุณ
ตัวอย่างนี้แสดงให้เห็นว่าความสัมพันธ์กันระดับกลุ่มช่วยให้สร้าง "ลูป" ของคำถามได้ง่ายขึ้นอย่างไร หลังจากสร้างกลุ่มสำหรับบุคคลที่ 1 แล้ว ฉันได้ส่งออกกลุ่มนั้น เนื่องจากฉันใช้ชื่อตัวแปร qcode เช่น p1_name แทนรหัส SGQA ฉันจึงสามารถใช้โปรแกรมแก้ไขข้อความเพื่อแก้ไขอย่างรวดเร็วและนำเข้ากลุ่มซ้ำได้หลายครั้ง (เช่น ใช้เวลาประมาณ 10 วินาทีในการแก้ไขและนำเข้ากลุ่มที่ซ้ำแต่ละกลุ่ม โดยตรวจสอบให้แน่ใจว่าตัวแปรทั้งหมดมีชื่อไม่ซ้ำกันและตรรกะระดับกลุ่มถูกต้อง)
นอกจากนี้ คุณยังสามารถใช้ฟีเจอร์ คัดลอกคำถาม ได้ แต่จะไม่รวดเร็วเท่ากับตัวเลือกที่แนะนำข้างต้น
ตัวอย่างนี้ยังแสดงให้เห็นวิธีป้องกันไม่ให้ข้อความ Finished ปรากฏขึ้นจนกว่าแบบสำรวจจะเสร็จสมบูรณ์จริง ๆ (เช่น เมื่อกลุ่มคำถามที่จำเป็นทั้งหมดเสร็จสมบูรณ์แล้ว)
ฟีเจอร์ EM ที่แสดงในตัวอย่าง
- ความสัมพันธ์กันระดับกลุ่ม - กลุ่มคำถามติดตามผล (บุคคลที่ 1-5) จะแสดงตามจำนวนผู้อยู่อาศัยร่วมกันที่ระบุไว้เท่านั้น;
- Tailoring - รายงานสุดท้ายจะสรุปข้อมูลประชากรของผู้อยู่อาศัยร่วมกันแต่ละคน;
- การแสดงคำถามแบบต่อเนื่อง - ไม่ว่าจะเป็นโหมดแบบกลุ่มหรือแบบทั้งหมดในหน้าเดียว คำถามถัดไปจะแสดงทันทีที่ตอบคำถามก่อนหน้าแล้วเท่านั้น
ภาพหน้าจอ
แบบสำรวจจะสร้างรายงานที่ปรับให้เหมาะกับผู้ตอบ โดยแสดงข้อมูลประชากรของผู้อยู่อาศัยร่วมกันตามจำนวนที่ระบุ:

หากคุณสลับไปที่โหมดทีละคำถาม คุณจะเห็นว่าดัชนีปรับคำถามให้เหมาะสม เนื่องจากผู้ใช้ระบุว่าบุคคลนั้นเป็นผู้หญิง ระบบจึงถามว่า "What is her name" และเมื่อเราตอบว่า "Mary" คำถามถัดไปจะเป็น "How old is Mary"

ดาวน์โหลด
หากต้องการดาวน์โหลดตัวอย่างแบบสำรวจ คลิกที่นี่: LS3_group_relevance.zip
ตัวกรองอาร์เรย์แบบเรียงซ้อน
ภาพรวม
แบบสำรวจนี้อิงตามการออกแบบแบบสำรวจโดยได้รับความอนุเคราะห์จาก Joy Lane Research, LLC
ภาพหน้าจอ
โปรดสังเกตสิ่งต่อไปนี้:
- Q02 แสดงเฉพาะชุดผลิตภัณฑ์ที่เลือกไว้ใน Q01 (โดยใช้ array_filter)
- Q02 ยังแสดง "Another product" ซึ่งเป็นข้อความที่กรอกในช่อง "Other electronic" ใน Q01
- Q04 แสดงเฉพาะผลิตภัณฑ์จาก Q02 ที่ถูกเลือก (ตัวกรองอาร์เรย์จึงทำงานแบบเรียงซ้อน)
- Q05 แสดงเฉพาะผลิตภัณฑ์จาก Q02 ที่ไม่ได้ถูกเลือกใน Q02 (โดยใช้ array_filter_exclude แบบเรียงซ้อน)


ดาวน์โหลด
คลิกลิงก์ต่อไปนี้เพื่อดาวน์โหลดตัวอย่างข้างต้น: ตัวอย่างแบบสำรวจ LS2_cascading_array_filter
Piping/Tailoring โดยใช้ประเภทคำถามและคุณสมบัติทั้งหมด
ภาพรวม
หากคุณสับสนเกี่ยวกับวิธีตั้งชื่อตัวแปร (SGQA เทียบกับ Qcode) คุณไม่ได้เป็นคนเดียว แม้ว่าเอกสารหลักจะอธิบายวิธีการสร้างชื่อตัวแปร Qcode แต่ไม่มีสิ่งใดดีกว่าการได้เห็นจากตัวอย่างที่ใช้งานได้จริง แบบสำรวจนี้แสดงวิธีเข้าถึงคุณสมบัติและคำตอบของคำถามโดยใช้ ExpressionScript
เนื้อหา
- ตัวอย่างของคำถามทุกประเภท
- มีคำถามทุกประเภทที่ใช้ "other" ได้ เพื่อให้คุณเห็นว่าส่งผลต่อการตั้งชื่อตัวแปรอย่างไร
- ค่าเริ่มต้นสำหรับคำถามทุกประเภทที่รองรับค่าเริ่มต้น
- Tailoring - รายงานทั้งในหน้าและนอกหน้าที่แสดงคำต่อท้าย dot notation ของ EM ทั้ง 16 รายการที่มี
- รายงานเหล่านี้แสดงข้อมูลที่กรอกไว้ในขณะนั้นทั้งหมด (จึงแสดงให้เห็นว่าคุณสามารถสร้างรายงานที่พิมพ์ได้เองสำหรับผู้ใช้แทนหน้าจอพิมพ์คำตอบได้อย่างไร)
- การตั้งชื่อ Qcode และ SGQA ที่ถูกต้องของตัวแปรทั้งหมด
ภาพหน้าจอ
แบบสำรวจนี้มีขนาดใหญ่มาก เราจึงเลือกที่จะไม่ใส่ภาพหน้าจอ แต่ขอให้คุณดาวน์โหลดและทดลองใช้งานด้วยตนเอง
ดาวน์โหลด
คลิกลิงก์ต่อไปนี้เพื่อดาวน์โหลดแบบสำรวจ: LS3_EM_question_attributes.lss
การตรวจสอบแบบดั้งเดิม ในรูปแบบใหม่
ภาพรวม
ตัวอย่างนี้แสดงการตรวจสอบทุกประเภทที่ใช้นิพจน์ และผลที่มีต่อคำถามแต่ละประเภทที่รองรับการตรวจสอบ ในหลายกรณี คำแนะนำการตรวจสอบจะถูกซ่อนไว้ตั้งแต่แรก และจะแสดงขึ้นก็ต่อเมื่อคำถามไม่ผ่านเกณฑ์การตรวจสอบ (และจะหายไปอีกครั้งเมื่อคำถามผ่านเกณฑ์การตรวจสอบแล้ว)
ประเภทการตรวจสอบที่แสดงในตัวอย่าง
- min_num_value_n - ค่าต่ำสุดสำหรับคำตอบ
- max_num_value_n - ค่าสูงสุดสำหรับคำตอบ
- min_answers - จำนวนคำตอบขั้นต่ำที่จำเป็นต้องตอบ
- max_answers จำนวนคำตอบสูงสุดที่อนุญาต
- multiflexible_min - ค่าต่ำสุดที่อนุญาตสำหรับคำตอบ (สำหรับคำถามประเภทตัวเลขแบบ multiflexi)
- multiflexible_max - ค่าสูงสุดที่อนุญาตสำหรับคำตอบ (สำหรับคำถามประเภทตัวเลขแบบ multiflexi)
- min_num_value - ผลรวมขั้นต่ำที่อนุญาตของคำตอบทั้งหมดในคำถาม
- max_num_value - ผลรวมสูงสุดที่อนุญาตของคำตอบทั้งหมดในคำถาม
- equals_num_value - ผลรวมของคำตอบทั้งหมดในคำถามต้องเท่ากับค่านี้
- validation - เป็นการตรวจสอบด้วยนิพจน์ปรกติสำหรับคำถาม และสามารถนำไปใช้กับแต่ละเซลล์ได้
ภาพหน้าจอ
เมื่อใช้สไตล์ CSS ใหม่ การตรวจสอบแต่ละประเภทจะแสดงคำแนะนำแยกกัน หากมีการแสดง สามารถซ่อนได้ผ่านตัวเลือก hide_tip โดยค่าเริ่มต้นจะแสดงเป็นตัวอักษรสีแดงหากคำถามไม่ผ่านเกณฑ์การตรวจสอบ และสีเขียวหากผ่านเกณฑ์:

ผู้ใช้ไม่สามารถส่งหน้าที่มีข้อผิดพลาดจากการตรวจสอบได้ และจะได้รับคำเตือนทันทีหากกรอกข้อมูลไม่ถูกต้อง:

สามารถนำการตรวจสอบไปใช้กับแต่ละเซลล์ในอาร์เรย์ได้ เช่นในตัวอย่างนี้ที่ใช้การตรวจสอบด้วยนิพจน์ปรกติเพื่อให้แน่ใจว่าแต่ละรายการเป็นหมายเลขโทรศัพท์ของสหรัฐอเมริกาที่มีรูปแบบถูกต้อง รวมถึงรหัสพื้นที่

ดาวน์โหลด
หากต้องการดาวน์โหลดตัวอย่างข้างต้น โปรดคลิกลิงก์ต่อไปนี้: LS3_Validation_tests.zip
สมการสำหรับการตรวจสอบ
ภาพรวม
บางครั้งคุณต้องการการตรวจสอบแบบกำหนดเองซึ่งไม่สามารถทำได้ด้วยเกณฑ์ต่ำสุด/สูงสุดแบบดั้งเดิม ในกรณีนี้ คุณจะต้องใช้ตัวเลือก em_validation_q และ em_validation_sq ซึ่งช่วยให้คุณสร้างสมการตรวจสอบที่ซับซ้อนในระดับคำถามและคำถามย่อยตามลำดับ
ฟีเจอร์ของ EM ที่แสดงในตัวอย่าง
- em_validation_q - เป็นสมการที่ใช้กำหนดว่าทั้งคำถามถูกต้องหรือไม่
- em_validation_q_tip - เป็นข้อความที่จะแสดงหากคำถามไม่ผ่านเกณฑ์ em_validation_q
- em_validation_sq - เป็นสมการที่ใช้กำหนดว่าแต่ละคำถามย่อย (เซลล์ในอาร์เรย์) ถูกต้องหรือไม่
- em_validation_sq_tip - เป็นข้อความที่จะแสดงหากมีคำถามย่อยใดไม่ถูกต้อง
โดยทั่วไป เมื่อใช้ em_validation_sq หากเซลล์ใดไม่ถูกต้อง สีพื้นหลังของเซลล์นั้นจะเปลี่ยนเป็นสีแดงเพื่อแสดงว่ามีข้อผิดพลาด
ภาพหน้าจอ

คำถามนี้ทำให้แน่ใจว่าคุณกรอกอายุของบุตรเรียงจากมากไปน้อย โดยนำสมการตรวจสอบต่อไปนี้ไปใช้:
q1_sq1 >= q1_sq2 && q1_sq2 >= q1_sq3 && q1_sq3 >= q1_sq4

ในตัวอย่างด้านล่าง การตรวจสอบทำให้แน่ใจว่ามีการตอบคำถามไม่เกิน 3 ข้อในแต่ละแถว โดยนำสมการตรวจสอบต่อไปนี้ไปใช้:
(sum(Test_A_1, Test_A_2, Test_A_3, Test_A_4, Test_A_5) <= 3) && (sum(Test_B_1, Test_B_2, Test_B_3, Test_B_4, Test_B_5) <= 3) && (sum(Test_C_1, Test_C_2, Test_C_3, Test_C_4, Test_C_5) <= 3)
คุณยังสามารถเขียนได้ดังนี้ โดย LimeSurvey จะแปลงเป็นนิพจน์ข้างต้นโดยอัตโนมัติขณะรันไทม์
(sum(self.sq_A) <= 3) && (sum(self.sq_B) <= 3) && (sum(self.sq_C) <= 3)

ดาวน์โหลด
หากต้องการดาวน์โหลดตัวอย่างแบบสำรวจที่ใช้ในตัวอย่างข้างต้น โปรดคลิกลิงก์ต่อไปนี้: ls2_test_em_sq_validation.lss
ความสัมพันธ์กันของคำถามย่อย
ภาพรวม
ตัวอย่างนี้แสดงให้เห็นว่า array_filter และเกณฑ์การตรวจสอบสามารถทำงานร่วมกันได้อย่างไร สำหรับการตรวจสอบที่ใช้กับผลรวม ระบบจะพิจารณาเฉพาะค่าที่เกี่ยวข้อง (มองเห็นได้) เท่านั้น
คุณลักษณะของ EM ที่นำมาสาธิต
นอกจากนี้ยังแสดงการรายงานแบบไดนามิกของจำนวนคำถามที่ตอบแล้วในคำถามหลัก
ภาพหน้าจอ
การเปลี่ยนจำนวนแถวที่มองเห็นจะเปลี่ยนผลรวมแบบไดนามิก การทำเครื่องหมายคำถามย่อยว่าไม่เกี่ยวข้องไม่ได้ล้างค่าของคำถามย่อยนั้น แต่ถ้าคำถามย่อยไม่เกี่ยวข้อง ค่าของคำถามย่อยจะไม่ถูกนำไปรวมในสมการใดๆ


สังเกตสิ่งที่เกิดขึ้นเมื่อเราเลือก "Fifth subquestion" ของคำถามแรก "Which rows should appear below" โปรดสังเกตว่าผลรวมของคำถามที่สอง "Enter some numbers" ตอนนี้เป็น 5 แม้ว่าคำถามย่อยที่ 5 ของคำถามนั้นจะยังมีค่า 14 อยู่ (เช่น หากคุณยกเลิกการเลือกคำถามย่อยที่ห้า คุณจะเห็นค่า 14 อีกครั้ง) แต่ค่านั้นจะไม่ถูกนำไปรวมในผลรวม เนื่องจากขณะนี้ไม่เกี่ยวข้อง ข้อมูลที่ไม่เกี่ยวข้องทั้งหมดจะถูกล้าง (เป็น NULL ในฐานข้อมูล) เมื่อส่งแบบสำรวจ แต่ข้อมูลเหล่านั้นจะยังคงอยู่ในหน้าเผื่อผู้ใช้ต้องการหรือจำเป็นต้องเปลี่ยนใจเกี่ยวกับคำตอบ

ดาวน์โหลด
หากต้องการดาวน์โหลดตัวอย่างของเรา คลิกที่นี่: ls2_subquestion_relevance.lss
การใช้เครื่องหมายจุลภาคเป็นตัวคั่นเลขฐาน (จุดทศนิยม)
ภาพรวม
ExpressionScript ช่วยให้มั่นใจว่าสามารถป้อนได้เฉพาะตัวเลขที่ถูกต้องในช่องตัวเลขเท่านั้น หากคุณป้อนตัวเลขที่ไม่ถูกต้อง ระบบจะแจ้งเตือนว่ามีบางอย่างผิดพลาด (เช่น ในกรณีของธีม fruity คำถามทั้งข้อจะเป็นสีแดง)
โปรดทราบว่าค่าตัวเลขจะถูกแปลงให้ใช้เครื่องหมายจุดเป็นตัวคั่นเลขฐานในฐานข้อมูลเสมอ ด้วยวิธีนี้ การวิเคราะห์ทางสถิติจึงทำงานได้อย่างเหมาะสม
หากต้องการเปลี่ยนตัวคั่นเลขฐาน ให้เข้าไปที่ตัวเลือก องค์ประกอบข้อความ ซึ่งอยู่ภายใต้แท็บ การตั้งค่า และมองหาฟังก์ชัน เครื่องหมายทศนิยม
ชนิดของคำถามที่ใช้ตัวคั่นเลขฐาน
- อินพุตตัวเลข [N]
- อินพุตตัวเลขหลายตัว [K]
- อาร์เรย์ (ตัวเลข) [:]
- อาร์เรย์ (ตัวอักษร) [;] เมื่อใช้แอตทริบิวต์ numbers_only
- รายการ(กำหนดคำตอบเอง) [L] เมื่อใช้แอตทริบิวต์ other_numbers_only
- ข้อความแบบสั้น [S] เมื่อใช้แอตทริบิวต์ numbers_only
- ข้อความสั้นหลายรายการ [Q] เมื่อใช้แอตทริบิวต์ numbers_only
- เลือกตอบได้หลายตัว [M] เมื่อใช้แอตทริบิวต์ other_numbers_only
- เลือกตอบได้หลายตัวพร้อมความคิดเห็น [P] เมื่อใช้แอตทริบิวต์ other_numbers_only
ภาพหน้าจอ
คุณจะสังเกตเห็นในภาพหน้าจอด้านล่างว่าสามารถใช้เครื่องหมายจุลภาคเป็นตัวคั่นเลขฐานได้

ดาวน์โหลด
หากต้องการดาวน์โหลดตัวอย่างข้างต้น โปรดคลิกลิงก์ต่อไปนี้: ls2_comma_as_radix_separator.lss
กลุ่มการสุ่มลำดับ
ภาพรวม
แบบสำรวจนี้สาธิตวิธีการใช้แอตทริบิวต์ random_group
หากใช้แอตทริบิวต์นี้ ลำดับของคำถามจะถูกสุ่มใหม่ทุกครั้งที่คุณเริ่มแบบสำรวจ อย่างไรก็ตาม เมื่อเริ่มแบบสำรวจแล้ว ลำดับที่สุ่มได้จะคงที่ แม้ว่าคุณจะเปลี่ยนภาษาก็ตาม
ภาพหน้าจอ
มาดูตัวอย่างด้านล่างไปพร้อมกัน คำถามสุ่มข้อแรกในหน้าจะเป็น Q1, Q4 หรือ Q7 ส่วนคำถามสุ่มข้อที่สองในหน้าจะเป็น Q2, Q5 หรือ Q8

นี่คือลำดับแบบสุ่มที่เกิดขึ้นในการทดสอบแบบสำรวจนี้ครั้งแรก

การทดสอบแบบสำรวจครั้งที่สองให้ลำดับแบบสุ่มที่แตกต่างออกไป

แต่เมื่อเปลี่ยนเป็นภาษาฝรั่งเศส (โดยไม่เริ่มแบบสำรวจใหม่) ลำดับที่สุ่มได้ก็ยังคงเดิม

ดาวน์โหลด
หากต้องการดาวน์โหลดตัวอย่างข้างต้น โปรดคลิกลิงก์ต่อไปนี้: Randomization_Group_Test.lss
สุ่มถามหนึ่งคำถามต่อกลุ่ม
ภาพรวม
แบบสำรวจนี้แสดงวิธีกำหนดค่าแบบสำรวจให้แสดงหนึ่งคำถามต่อกลุ่มแบบสุ่ม โดยมี 5 กลุ่ม กลุ่มละ 6 คำถาม ในตอนเริ่มต้น ใน Group 0 จะมีคำถามสมการที่ซ่อนอยู่ห้าข้อ ชื่อ ask1-ask5 โดยแต่ละข้อมีค่า {floor(rand(1,6.9999))} ในช่องข้อความคำถาม ซึ่งหมายความว่าตัวแปร ask1-ask5 แต่ละตัวจะมีค่าระหว่าง 1 ถึง 6 จากนั้นแต่ละคำถามในกลุ่มจะมีสมการความสัมพันธ์กัน เช่น "ask1==N" โดย N คือลำดับที่ N ในกลุ่ม (ดังนั้นคำถามข้อที่สามในกลุ่ม 1 จะมีสมการความสัมพันธ์กันเป็น "ask1==3")
แบบสำรวจนี้ทำงานได้ดีเท่ากันทั้งในโหมดทั้งแบบสำรวจในครั้งเดียว กลุ่มต่อกลุ่ม และคำถามต่อคำถาม เนื่องจากการสุ่มลำดับถูกกำหนดไว้ในกลุ่มแรก และกลุ่มนั้นถูกซ่อนไว้โดยปริยาย (เพราะคำถาม ask1-ask5 ทั้งหมดถูกซ่อนอยู่) การสุ่มลำดับจึงคงเดิมสำหรับผู้ตอบแต่ละคน แต่ผู้ตอบแต่ละคนจะได้ลำดับแบบสุ่มที่แตกต่างกัน
ฟีเจอร์ที่สาธิต
- ประเภทคำถามสมการ
- ฟังก์ชันการสุ่ม
- ฟังก์ชันเงื่อนไข (if)
ภาพหน้าจอ
นี่คือ Group0 ซึ่งใช้ประเภทคำถามสมการเพื่อสุ่มค่าตั้งแต่ 1 ถึง 6 สำหรับแต่ละกลุ่ม (ยกเว้นกลุ่มสุดท้ายที่มีเพียง 4 คำถาม) โปรดสังเกตว่าฟังก์ชัน "if()" จะตรวจสอบก่อนว่า ask1 ถูกกำหนดค่าไว้แล้วหรือไม่ หากกำหนดแล้วจะใช้ค่านั้น แต่หากยังไม่ได้กำหนด ก็จะใช้ค่าสุ่มเพื่อกำหนดค่าให้ ask1

กลุ่มนี้แสดงวิธีที่ตัวแปร (ask4) จาก Group0 ถูกใช้ควบคุมว่าคำถามใดจะแสดงในกลุ่มที่สี่

ดาวน์โหลด
หากต้องการดาวน์โหลดตัวอย่างแบบสำรวจข้างต้น โปรดคลิกที่นี่: ตัวอย่างแบบสำรวจการสุ่มคำถามภายในกลุ่ม
สุ่มถามคำถามจำนวนที่กำหนดในกลุ่ม (เซตย่อยของคำถาม)
ภาพรวม
แบบสำรวจนี้แสดงวิธีถามคำถามชุดย่อยแบบสุ่มในกลุ่ม เช่น แสดงคำถามแบบสุ่ม 5 ข้อจากคำถามทั้งหมด 10 ข้อที่อยู่ในกลุ่มเดียวกัน
แบบสำรวจนี้มีหนึ่งกลุ่มที่ประกอบด้วยคำถาม 10 ข้อ คำถามทั้งหมดถูกกำหนดชื่อกลุ่มแบบสุ่มเดียวกัน ดังนั้นคำถามจะแสดงในลำดับแบบสุ่มเมื่อโหลดหน้า คำถามแต่ละข้อจะมีสมการความสัมพันธ์กันที่กำหนดว่า ผลรวมของ "relevanceStatus" ของคำถามอื่นทั้งหมดในกลุ่มต้องน้อยกว่าจำนวนคำถามที่คุณต้องการแสดง เนื่องจาก relevanceStatus ถูกกำหนดค่าเมื่อมีการแสดงผลคำถาม ผลรวมนี้จึงเท่ากับจำนวนคำถามก่อนหน้านั่นเอง
ดังนั้น ในตัวอย่าง 5 จาก 10 ข้อของเรา สมการสำหรับ Q1 จะเป็นดังนี้:
sum(Q2.relevanceStatus, Q3.relevanceStatus, Q4.relevanceStatus, Q5.relevanceStatus, Q6.relevanceStatus, Q7.relevanceStatus, Q8.relevanceStatus, Q9.relevanceStatus, Q10.relevanceStatus) LT 5
สำหรับ Q2 จะเป็นดังนี้:
sum(Q1.relevanceStatus, Q3.relevanceStatus, Q4.relevanceStatus, Q5.relevanceStatus, Q6.relevanceStatus, Q7.relevanceStatus, Q8.relevanceStatus, Q9.relevanceStatus, Q10.relevanceStatus) LT 5
และเป็นเช่นนี้ต่อไป...
ฟีเจอร์ที่แสดงในตัวอย่าง
ดาวน์โหลด
หากต้องการดาวน์โหลดตัวอย่างข้างต้น โปรดคลิกลิงก์ต่อไปนี้: ตัวอย่างแบบสำรวจสุ่ม 5 จาก 10 ข้อ
การให้คะแนนรายการผลิตภัณฑ์ที่ผู้ใช้ป้อน
ภาพรวม
ตัวอย่างด้านล่างแสดงวิธีให้ผู้ใช้ระบุรายการผลิตภัณฑ์ที่สนใจ แล้วให้พวกเขาให้คะแนนผลิตภัณฑ์เหล่านั้น
ฟีเจอร์ของ EM ที่แสดงในตัวอย่าง
- การปรับแต่งคำตอบ (Tailoring answers) - เมื่อให้คะแนนผลิตภัณฑ์ ป้ายชื่อจะมาจากช่องความคิดเห็นของคำถามแบบเลือกตอบได้หลายตัวก่อนหน้า
- การปรับแต่งมาตราส่วน (Tailoring scales) - ตัวเลือกคำถามขั้นสูงหลายอย่าง เช่น หัวข้อมาตราส่วน ก็สามารถปรับแต่งได้เช่นกัน
ภาพหน้าจอ
ภาพนี้แสดงให้เห็นว่า แม้จะเลือกผลิตภัณฑ์เพียงข้อ 1, 3 และ 5 ก็จะแสดงเฉพาะ 3 ข้อนั้นเท่านั้น (โดยใช้แอตทริบิวต์ array_filter) นอกจากนี้ ป้ายชื่อแถวในคำถามที่สองจะเป็นหมายเลขผลิตภัณฑ์ (หากไม่มีการป้อนข้อมูลในช่องความคิดเห็น) หรือเนื้อหาของช่องความคิดเห็น

ภาพนี้แสดงวิธีกำหนดคำตอบที่ปรับแต่ง:

นี่คือ Show Logic File ของคำถามดังกล่าว ซึ่งช่วยให้เราตรวจสอบได้ว่าตรรกะเงื่อนไขทำงานตามที่ต้องการหรือไม่ (เช่น ตรวจดูว่ามีข้อผิดพลาดทางไวยากรณ์หรือไม่):

ภาพถัดไปแสดงกลุ่มที่คุณระบุมาตราส่วนการให้คะแนน 5 ระดับ (ตัวเลือก 1-5) ชื่อของมาตราส่วน และผลิตภัณฑ์ที่ต้องการให้คะแนน คำถามสุดท้ายแสดงให้เห็นว่าทุกส่วนของคำถามแบบอาร์เรย์สามารถปรับแต่งได้:

ภาพถัดไปแสดงมุมมองไฟล์ตรรกะของคำถามสุดท้าย ดังที่คุณเห็น คำถามย่อย คำตอบ และหัวข้อมาตราส่วนสามารถปรับแต่งได้

ดาวน์โหลด
หากต้องการดาวน์โหลดตัวอย่างแบบสำรวจข้างต้น โปรดคลิกลิงก์ต่อไปนี้: ตัวอย่างแบบสำรวจการให้คะแนนรายการผลิตภัณฑ์ที่ผู้ใช้ป้อน