ตัวอย่างแบบสำรวจ ExpressionScript
From LimeSurvey Manual
บทนำ
วิธีที่ดีที่สุดในการเรียนรู้การใช้งาน ExpressionScript คือการทดลองใช้ตัวอย่างที่ใช้งานได้จริงและปรับแก้ให้เหมาะกับความต้องการของคุณ
ด้านล่างนี้คือชุดตัวอย่างแบบสำรวจที่แสดง (และใช้ทดสอบ) วิธีที่ EM สามารถช่วยเพิ่มประสิทธิภาพให้กับแบบสำรวจของคุณ คุณสามารถพบแบบสำรวจเหล่านี้ได้ในโฟลเดอร์ /docs/demosurveys ของชุดติดตั้ง
ความสัมพันธ์กัน การปรับข้อความตามคำตอบ และสมการ
ภาพรวม
ตัวอย่างต่อไปนี้คำนวณค่า BMI (ดัชนีมวลกาย) ของผู้ตอบแต่ละคน ดูคุณลักษณะที่แสดงในตัวอย่างนี้ได้ด้านล่าง
คุณลักษณะของ EM ที่แสดงในตัวอย่าง
- ความสัมพันธ์กัน - รองรับตรรกะแบบมีเงื่อนไขที่ทรงพลัง;
- การแทรกข้อความ / การปรับข้อความตามคำตอบ (Piping / Tailoring) - ช่วยให้สามารถแทรกหรือปรับคำตอบและข้อมูลเมตาของคำถามได้;
- การปรับข้อความแบบไดนามิก - สังเกตว่ารายงานจะเปลี่ยนไปบนหน้าเดียวกันขณะที่คุณตอบคำถาม
- การปรับข้อความระดับย่อย (Micro-Tailoring) - การปรับข้อความตามเงื่อนไขภายในประโยคและรายงานโดยใช้คำสั่ง if()
- สมการ - ประเภทคำถามใหม่ที่ช่วยให้คุณคำนวณและจัดเก็บผลลัพธ์ในฐานข้อมูลได้ แม้การคำนวณนั้นจะถูกซ่อนอยู่ก็ตาม
- การตรวจสอบแบบมีเงื่อนไข - เกณฑ์การตรวจสอบ เช่น ค่าขั้นต่ำที่อนุญาต สามารถกำหนดเป็นแบบมีเงื่อนไขได้ เช่น อิงตามสมการ
ภาพหน้าจอ
ตัวอย่างนี้คำนวณดัชนีมวลกาย (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" ซึ่งแสดงให้เห็นว่าคุณสามารถปรับประโยคย่อย ๆ ให้ตรงกับเพศและ/หรือจำนวนของกลุ่มตัวอย่างได้อย่างง่ายดาย คุณยังสามารถผันกริยาและเปลี่ยนรูปคำนามตามเพศและจำนวนได้อย่างง่ายดายอีกด้วย

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

หากคุณสลับไปใช้โหมดทีละคำถาม คุณจะเห็นว่าดัชนีปรับคำถามให้เหมาะสม เนื่องจากผู้ใช้ระบุว่าบุคคลนั้นเป็นผู้หญิง ระบบจึงถามว่า "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
เนื้อหา
- ตัวอย่างของทุกประเภทคำถาม
- มีทุกประเภทคำถามที่ใช้ "อื่นๆ" ได้ เพื่อให้คุณเห็นว่าส่งผลต่อการตั้งชื่อตัวแปรอย่างไร
- ค่าเริ่มต้นสำหรับทุกประเภทคำถามที่รองรับค่าเริ่มต้น
- 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 - ค่าขั้นต่ำที่อนุญาตสำหรับคำตอบ (สำหรับประเภทคำถามอาร์เรย์แบบตัวเลขหลายค่า)
- multiflexible_max - ค่าสูงสุดที่อนุญาตสำหรับคำตอบ (สำหรับประเภทคำถามอาร์เรย์แบบตัวเลขหลายค่า)
- 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
การใช้เครื่องหมายจุลภาคเป็นตัวคั่นทศนิยม (Radix Separator)
ภาพรวม
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 คำถาม ในขั้นแรก ที่กลุ่ม 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 ข้อ
การให้คะแนนรายการผลิตภัณฑ์ที่ผู้ใช้กรอกเอง
ภาพรวม
ตัวอย่างด้านล่างแสดงวิธีให้ผู้ใช้ระบุรายการผลิตภัณฑ์ที่ตนสนใจ แล้วให้พวกเขาให้คะแนนผลิตภัณฑ์เหล่านั้น
ฟีเจอร์ ES ที่แสดงให้เห็น
- การปรับแต่งคำตอบ (Tailoring answers) - เมื่อให้คะแนนผลิตภัณฑ์ ป้ายชื่อจะดึงมาจากช่องความคิดเห็นของคำถามเลือกตอบได้หลายตัวก่อนหน้า
- การปรับแต่งมาตราส่วน (Tailoring scales) - ตัวเลือกคำถามขั้นสูงจำนวนมาก เช่น หัวข้อของมาตราส่วน ก็สามารถปรับแต่งได้เช่นกัน
ภาพหน้าจอ
ภาพนี้แสดงให้เห็นว่า เนื่องจากมีการเลือกเฉพาะผลิตภัณฑ์ที่ 1, 3 และ 5 จึงแสดงเพียง 3 รายการนั้น (โดยใช้แอตทริบิวต์ array_filter) นอกจากนี้ ป้ายชื่อแถวในคำถามที่สองจะเป็นหมายเลขผลิตภัณฑ์ (หากไม่ได้กรอกข้อมูลในช่องความคิดเห็น) หรือเนื้อหาของช่องความคิดเห็น

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

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

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

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

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