x

บทหลัก

  1. LimeSurvey Cloud เทียบกับ LimeSurvey CE
  2. คู่มือเริ่มต้นใช้งานฉบับย่อ - LimeSurvey 3.0+
  3. การติดตั้ง - LimeSurvey CE
  4. วิธีออกแบบแบบสำรวจที่ดี (คู่มือ)
  5. เริ่มต้นใช้งาน
  6. การดูแลระบบ LimeSurvey
  7. แบบสำรวจ - บทนำ
  8. การตั้งค่าแบบสอบถาม
  9. เมนูสำรวจ
  10. โครงสร้างการสำรวจ
  11. คำถาม - บทนำ
  12. กลุ่มคำถาม - บทนำ
  13. แบบสำรวจ - การจัดการ
  14. ตัวเลือกแถบเครื่องมือแบบสำรวจ
  15. แบบสำรวจหลายภาษา
  16. ExpressionScript Engine - คู่มือเริ่มต้นอย่างรวดเร็ว
  17. ฟีเจอร์ขั้นสูงและฟีเจอร์ที่ไม่ได้จัดหมวดหมู่
  18. คำถามที่พบบ่อยทั่วไป
  19. การแก้ไขปัญหา
  20. วิธีแก้ปัญหาชั่วคราว (Workarounds)
  21. สัญญาอนุญาต
  22. บันทึกการเปลี่ยนแปลงของเวอร์ชัน
  23. ปลั๊กอิน
 Actions

ตรวจสอบตรรกะของแบบสำรวจ - ขั้นสูง

From LimeSurvey Manual

หน้านี้อาจแปลด้วยเครื่องและอาจมีข้อผิดพลาด ดูต้นฉบับภาษาอังกฤษ · ปรับปรุงคำแปลนี้
This page is a translated version of the page Check survey logic - Advanced and the translation is 100% complete.


ทั่วไป

ตัวเลือกสำคัญที่ช่วยให้คุณสร้างและดูแลรักษาแบบสำรวจที่ซับซ้อนได้อย่างง่ายดายคือ ตรวจสอบตรรกะของแบบสำรวจ

ตลอดช่วงการพัฒนาและทดสอบแบบสำรวจ และก่อนที่จะเปิดใช้งาน เป็นเรื่องสำคัญมากที่จะต้องตรวจสอบตรรกะของแบบสำรวจ โดยเฉพาะอย่างยิ่งเมื่อคุณใช้สมการความสัมพันธ์กัน การปรับแต่งข้อความ (tailoring) และสมการการตรวจสอบที่ซับซ้อน คุณต้องแน่ใจว่าจะไม่มีสิ่งใดผิดพลาดเมื่อเริ่มใช้งานแบบสำรวจ

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



ดังที่เห็นข้างต้น คุณสามารถเรียกใช้ตัวเลือกนี้ได้สี่ครั้ง สำหรับแต่ละภาษาที่ใช้ในแบบสำรวจ

คำอธิบาย

ตัวเลือก ตรวจสอบตรรกะของแบบสำรวจ จะแสดงทุกสิ่งที่คุณระบุไว้สำหรับแต่ละคำถามและกลุ่ม (เช่น ชื่อ ข้อความ คำอธิบาย เงื่อนไข/ความสัมพันธ์กัน กฎการตรวจสอบ ค่าเริ่มต้น คำถามย่อย คำตอบ) ในรูปแบบตารางที่ดูง่าย โดยจะไฮไลต์ข้อผิดพลาด และให้คุณคลิกที่หมายเลขคำถามและกลุ่ม (หรือตัวแปรที่ใช้ในสมการ) เพื่อเปิดแท็บเบราว์เซอร์ใหม่สำหรับแก้ไขคำถามหรือกลุ่มเหล่านั้น ทำให้แก้ไขข้อผิดพลาดได้อย่างรวดเร็ว และรีเฟรชหน้าตรวจสอบตรรกะเพื่อยืนยันความถูกต้องของแบบสำรวจก่อนเปิดใช้งาน

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

ประกอบด้วยคอลัมน์ต่อไปนี้:

  • # - แสดงลำดับของกลุ่มและคำถาม โดยเริ่มนับจาก 0
  • ชื่อ [ID] - แสดงรหัสคำถามของกลุ่ม/คำถาม/คำถามย่อย รหัสเหล่านี้สามารถใช้เป็นตัวแปรภายในนิพจน์ได้ ID คือหมายเลขคำถาม (QID) หรือหมายเลขกลุ่ม (GID) ฟิลด์นี้ยังแสดงชนิดของคำถาม (เช่น เลือกตอบได้หลายตัว [M])) ด้วย


หากต้องการทราบเพิ่มเติมว่าสามารถใช้ตัวแปรใดในนิพจน์ได้บ้าง โปรดอ่านหัวข้อย่อยของวิกินี้


  • ความสัมพันธ์กัน [การตรวจสอบ] (ค่าตั้งต้น) - แสดงสิ่งต่อไปนี้:
    • ความสัมพันธ์กัน - สมการความสัมพันธ์กันที่ไฮไลต์ไวยากรณ์ของคำถามหรือกลุ่ม หากเป็นจริงเสมอ (แสดงในทุกกรณี) ค่าจะเป็น 1
    • การตรวจสอบ - ExpressionScript จะสร้างสมการการตรวจสอบให้โดยอัตโนมัติตามคุณสมบัติของคำถามที่เลือก (เช่น จำนวนคำตอบขั้นต่ำ/สูงสุด ผลรวมขั้นต่ำ/สูงสุด/เท่ากับ ค่าแต่ละรายการขั้นต่ำ/สูงสุด หรือการตรวจสอบด้วยนิพจน์ปรกติ) ส่วนนี้แสดงสมการการตรวจสอบที่สร้างขึ้น เพื่อให้คุณตรวจพบข้อผิดพลาดได้ (เช่น ตัวแปรที่ไม่ได้กำหนด)
      • การตรวจสอบระดับคำถามแสดงสมการที่ใช้ตรวจสอบคุณสมบัติของคำถามที่อธิบายข้างต้น
      • การตรวจสอบระดับคำถามย่อยแสดงสมการที่ใช้ดำเนินการ array_filter, array_filter_exclude และ exclusive_option
    • ค่าตั้งต้น - หากคำถามมีค่าเริ่มต้น ค่านั้นจะแสดงที่นี่ โดยไฮไลต์ไวยากรณ์ (เนื่องจากค่าเริ่มต้นอาจเป็นนิพจน์ได้)
  • ข้อความ [ช่วยเหลือ] (เคล็ดลับ) - แสดงสิ่งต่อไปนี้:
    • ข้อความ - ข้อความของกลุ่ม คำถาม คำถามย่อย หรือคำตอบ โดยไฮไลต์ไวยากรณ์เพื่อแสดงการปรับแต่งข้อความ (tailoring)ที่ฝังอยู่ ทำให้คุณตรวจสอบได้ว่าได้ประกาศตัวแปรทั้งหมดที่ตั้งใจจะใช้ในการปรับแต่งแล้ว
    • คำอธิบาย - แสดงข้อความช่วยเหลือของคำถาม ซึ่งไฮไลต์ไวยากรณ์เช่นกัน
    • เคล็ดลับ - แสดงเคล็ดลับการตรวจสอบที่ระบบสร้างขึ้นภายในตามคุณสมบัติของคำถาม เคล็ดลับเดียวกันนี้ใช้ในทุกรูปแบบของแบบสำรวจ รวมถึงแบบสำรวจที่พิมพ์ได้และหน้าจอรายการข้อมูล
    • คุณสมบัติคำถาม - แสดงตารางของคุณสมบัติคำถามที่เกี่ยวข้องทั้งหมดของคำถามนี้ คุณสมบัติที่อาจเป็นสมการจะถูกไฮไลต์ไวยากรณ์เพื่อให้คุณตรวจสอบความถูกต้องได้

แถวต่าง ๆ จะแยกสีดังนี้:

  • กลุ่ม - แสดงด้วยพื้นหลังสีเทาอ่อน
  • คำถาม - แสดงด้วยพื้นหลังสีเขียวอ่อน
  • คำถามย่อย - แสดงด้วยพื้นหลังสีเหลืองอ่อน
  • คำตอบ - แสดงด้วยพื้นหลังสีขาวธรรมดา

คำตอบจะมีคุณสมบัติเพิ่มเติมในคอลัมน์ ความสัมพันธ์กัน:

  • ค่า - เป็นค่าภายในเริ่มต้นที่ใช้ในการคำนวณ หากคุณใช้การประเมิน ค่านี้จะเป็นค่าการประเมิน มิฉะนั้นจะเหมือนกับชื่อของคำตอบ


คำอธิบายการสำรวจ ข้อความต้อนรับและข้อความตอนจบ ที่อยู่เว็บไซต์ตอนจบแบบสอบถาม ประกาศนโยบายข้อมูลการสำรวจ และลาเบล จะแสดงอยู่ในหน้าตรวจสอบตรรกะของแบบสำรวจ (เหนือตาราง) หากฟิลด์ที่เกี่ยวข้องไม่ว่างเปล่า!

การใช้งาน

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

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

  • ตัวแปรที่ไม่ได้กำหนด - หากคุณยังไม่ได้กำหนดตัวแปรทั้งหมด หรือพิมพ์ array_filter ผิด (หรือใช้ชุดตัวเลือกของคำตอบที่ต่างกันสำหรับ array_filter) คำถามที่ใช้การตรวจสอบบางข้อจะแสดงข้อผิดพลาด ตัวแปรที่ไม่ได้กำหนดจะแสดงเป็นข้อความสีแดงและมีกรอบสีแดงล้อมรอบ
  • ไวยากรณ์ไม่ถูกต้อง - เมื่อคุณเริ่มใช้สมการความสัมพันธ์กัน คุณอาจใช้วงเล็บมากหรือน้อยเกินไป ปัญหาทางไวยากรณ์เหล่านี้จะถูกไฮไลต์และมีกรอบสีแดงล้อมรอบ หากคุณเลื่อนเมาส์ไปวางเหนือข้อความที่อยู่ในกรอบสีแดงนั้น จะมีทูลทิปอธิบายข้อผิดพลาด

สีในไวยากรณ์ของ ExpressionScript

เงื่อนไขและสมการจะถูกไฮไลต์ไวยากรณ์เพื่อให้เข้าใจได้ง่ายขึ้นว่ากำลังดูอะไรอยู่:

  1. เขียว / ฟ้าอ่อน: ตัวแปรที่อ้างอิงถึงคำถามก่อนหน้าในแบบสำรวจ
  2. น้ำเงิน: ฟังก์ชัน
  3. เทา: นิพจน์สตริง
  4. น้ำตาล: นิพจน์ TOKEN (ข้อมูลผู้เข้าร่วม)
  5. ดำ: ตัวดำเนินการ

สิ่งที่ควรตรวจสอบ:

  1. ม่วง: ตัวแปรที่อ้างอิงถึงคำถามที่อยู่ถัดไปในแบบสำรวจ โดยปกติมักเป็นข้อผิดพลาดและต้องตรวจสอบ
  2. แดงหรือกรอบสีแดง: ตัวแปรที่ไม่มีอยู่จริง หรือการอ้างอิงถึงคำถามก่อนหน้า หรือข้อผิดพลาดทางไวยากรณ์ - โดยปกติต้องตรวจสอบ


ตัวแปรที่ไม่ได้กำหนด

หากมีการใช้ตัวแปรที่ไม่ได้กำหนด ชื่อตัวแปรนั้นจะเป็นสีแดงและมีกรอบสีแดงล้อมรอบ หากคุณเลื่อนเมาส์ไปวางเหนือชื่อตัวแปร จะแสดงข้อความว่า "undefined variable":



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



}}

ไวยากรณ์ไม่ถูกต้อง

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



ต่อไปนี้คือตัวอย่างที่ดีมากมายเกี่ยวกับการใช้งานการเน้นไวยากรณ์


JavaScript แบบกำหนดเองที่ไม่ถูกต้อง

ข้อผิดพลาดของ JavaScript จะถูกเน้นไว้ในการตรวจสอบตรรกะของแบบสำรวจด้วยเช่นกัน:


การแก้ไขและการตรวจสอบอย่างรวดเร็ว

ข้อความที่เน้นไวยากรณ์ทั้งหมดมีทูลทิปฝังอยู่ และสามารถคลิกได้:

  1. ทูลทิป
    • ฟังก์ชัน - เมื่อเลื่อนเมาส์ไปวางเหนือ คุณจะเห็นวัตถุประสงค์และคำนิยามไวยากรณ์ของฟังก์ชัน
    • ชื่อตัวแปร - เมื่อเลื่อนเมาส์ไปวางเหนือ คุณจะเห็นตำแหน่ง (กลุ่ม ลำดับของคำถาม) ข้อความคำถาม และคำตอบที่อนุญาตของคำถามนั้น
  2. การดำเนินการ
    • ชื่อตัวแปร - เมื่อคลิกที่ชื่อตัวแปร จะเปิดหน้าต่างใหม่ที่ให้คุณแก้ไขคำถามได้ ซึ่งช่วยให้นำทางและตรวจสอบตรรกะได้ง่าย - เพียงคลิกที่ชื่อตัวแปรในเกณฑ์ความสัมพันธ์กันหรือการตรวจสอบของคำถามต่อไปเรื่อยๆ เพื่อดูว่าตัวแปรเหล่านั้นมาจากไหนและใช้งานอย่างไร


ตัวอย่าง

ตัวอย่างต่อไปนี้นำมาจากแบบสำรวจตัวอย่างของ ExpressionScript คุณสามารถดูภาพหน้าจอของแบบสำรวจที่กำลังทำงาน คำอธิบาย และไฟล์ดาวน์โหลดได้ในหน้านั้น


ดัชนีมวลกาย (Body Mass Index)

นี่คือภาพหน้าจอของตัวอย่างนี้

นี่คือมุมมองการเรียงลำดับคำถามใหม่ของการคำนวณดัชนีมวลกาย คุณจะเห็นนิพจน์ความสัมพันธ์กันของน้ำหนัก ส่วนสูง และ BMI ภายใต้คอลัมน์ คำถาม:



หากต้องการดูภาพรวมของแบบสำรวจให้ดียิ่งขึ้น ให้ตรวจสอบหน้าตรวจสอบตรรกะของแบบสำรวจ:



ตัวอย่างแบบสำรวจนี้ยังเป็นตัวอย่างที่ดีของคำสั่ง if() ซ้อนกันเพื่อสร้าง "weightstatus"


ตรรกะแบบต่อเนื่อง (Cascading logic)

นี่คือภาพหน้าจอของตัวอย่างนี้

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



Q05 ในตัวอย่างนี้แสดงการใช้ array_filter และ array_filter_exclude พร้อมกันกับ Q01 และ Q02 ตามลำดับ ตัวอย่างนี้แสดงความสามารถของ array_filter แบบต่อเนื่อง โปรดทราบว่าเหตุผลหลักประการหนึ่งที่แสดงเกณฑ์การตรวจสอบระดับคำถามและคำถามย่อย คือเพื่อช่วยให้แน่ใจว่าคุณไม่ได้พิมพ์ชื่อตัวแปร array_filter หรือ array_filter_exclude ผิด (หรือในกรณีที่คุณใช้ชื่อตัวแปรต่างกันสำหรับรายการคำถามย่อยที่ถูกกรอง) หากพิมพ์ผิด ชื่อตัวแปรที่ไม่ถูกต้องทั้งหมดจะปรากฏเป็นสีแดงเพื่อระบุว่าไม่ได้ถูกกำหนดไว้ ทำให้คุณแก้ไขปัญหาได้อย่างรวดเร็ว



ความสัมพันธ์กันแบบไดนามิก

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

โปรดทราบด้วยว่าคำถามจะแสดงก็ต่อเมื่อเป็นไปตามเกณฑ์การตรวจสอบบางประการเท่านั้น ตัวอย่างเช่น หากบุคคลหนึ่งระบุว่ามีลูก 2 คน ผู้ตอบจะต้องกรอกคำถามบางข้อ (kid1 และ kid2)


ความสัมพันธ์กันระดับกลุ่ม

ตัวอย่างนี้แสดงให้เห็นว่าความสัมพันธ์กันระดับกลุ่มปรากฏอย่างไรในการตรวจสอบตรรกะ ดูภาพหน้าจอของตัวอย่างที่อธิบายด้านล่างนี้

ดังที่เห็น สมการความสัมพันธ์กันระดับกลุ่ม (cohabs > 1 && p1_rel != "") จะปรากฏในแถวสีเทา Person 2 ของ G-2

คุณอาจสังเกตด้วยว่าคำถามทั้งหมดเป็นคำถามที่จำเป็นต้องตอบ อย่างไรก็ตาม หากกลุ่มไม่มีความสัมพันธ์กัน คำถามทั้งหมดในกลุ่มนั้นก็จะไม่มีความสัมพันธ์กันเช่นกัน ดังนั้น คำถามเหล่านั้นจะจำเป็นต้องตอบจริง ๆ ก็ต่อเมื่อกลุ่มมีความสัมพันธ์กันเท่านั้น

คุณอาจสังเกตด้วยว่าคำถามบางข้อจะแสดงก็ต่อเมื่อคำตอบของคำถามก่อนหน้าไม่ว่างเปล่า จากด้านล่างจะเห็นว่าหากไม่ได้กรอก p2_sex คำถาม p2_name จะไม่แสดง แม้ว่าจะเป็นคำถามที่จำเป็นต้องตอบก็ตาม และคำถามที่จำเป็นต้องตอบ p2_age ก็จะไม่แสดงหากไม่ได้กรอก p2_name เช่นกัน คำถามเหล่านี้สามารถถือเป็น "จำเป็นต้องตอบแบบมีเงื่อนไข"

นอกจากนี้ โปรดทราบว่าข้อความ เคล็ดลับ ก็ถูกสร้างขึ้นให้คุณโดยอัตโนมัติเช่นกัน โดยจัดตามช่วงค่า (ต่ำสุด/สูงสุด) ช่วงผลรวมของค่า (ต่ำสุด/สูงสุด/เท่ากับ) จำนวนคำตอบ (ต่ำสุด/สูงสุด) ฯลฯ (ขึ้นอยู่กับประเภทคำถามที่ใช้และคุณสมบัติที่เปิดใช้งาน) บางครั้งคุณต้องการตรวจสอบช่วงของคำตอบ แต่ไม่ต้องการแสดงเคล็ดลับการตรวจสอบที่ดูไม่จำเป็นให้ผู้ใช้เห็น ในกรณีเช่นนี้ คุณสามารถใช้ตัวเลือกคำถาม hide_tip (เช่นในกรณีนี้ เพื่อไม่ให้บอกผู้ใช้ว่าอายุต้องอยู่ระหว่าง 0 ถึง 115 เว้นแต่พวกเขาจะพยายามกรอกค่าที่ไม่ถูกต้อง - ดู p2_age)


เครื่องหมายจุลภาคเป็นตัวคั่นทศนิยม

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

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