Ο τύπος ερώτησης select_multiple εμφανίζει λίστα όπου ο ερωτώμενος μπορεί να επιλέξει μία ή περισσότερες επιλογές. Από προεπιλογή οι επιλογές αποδίδονται ως πλαίσια ελέγχου. Η αποθηκευμένη τιμή είναι μια λίστα διαχωρισμένη με κενά όλων των επιλεγμένων τιμών επιλογής.

Βασική προδιαγραφή XLSForm

Φύλλο εργασίας survey:

typenamelabel
select_multiple cropscrops_grownΠοιες καλλιέργειες κάνει το νοικοκυριό;

Φύλλο εργασίας choices:

list_namenamelabel
cropsmaizeΚαλαμπόκι
cropsbeansΦασόλια
cropsriceΡύζι
cropsvegetablesΛαχανικά
cropsotherΆλλο

Για περισσότερες λεπτομέρειες, δείτε την προδιαγραφή XLSForm.

Μορφή αποθηκευμένων δεδομένων

Η εξαγόμενη στήλη περιέχει λίστα επιλεγμένων τιμών διαχωρισμένων με κενά:

  maize beans vegetables
  

Χρησιμοποιήστε τη συνάρτηση selected() — όχι = — κατά τον έλεγχο τιμών select_multiple σε εκφράσεις (δείτε παρακάτω).

Χρήσεις

Οι ερωτήσεις select_multiple χρησιμοποιούνται για:

  1. Συλλογή πολλαπλών εφαρμόσιμων απαντήσεων (π.χ. πηγές εισοδήματος, καλλιέργειες, συμπτώματα)
  2. Στοιχεία συμφωνίας τύπου πλαισίου ελέγχου (π.χ. “Επιλέξτε όλα όσα ισχύουν”)
  3. Αποθέματα γλωσσών ή δεξιοτήτων
  4. Οποιαδήποτε ερώτηση όπου πολλές απαντήσεις ισχύουν ταυτόχρονα

Επιλογές εμφάνισης

ΕμφάνισηΠεριγραφή
(καμία)Προεπιλεγμένα πλαίσια ελέγχου, ένα ανά γραμμή
minimalWidget πολλαπλής επιλογής αναπτυσσόμενου μενού
compactΣυμπαγές πλέγμα, στήλες προσαρμόζονται στο πλάτος οθόνης
compact-NΣυμπαγές πλέγμα με N στήλες
horizontalΕπιλογές σε οριζόντια γραμμή (web)
horizontal-compactΟριζόντιο, συμπαγές διάστιχο (web)
labelΕμφανίζει μόνο ετικέτες, χωρίς πλαίσια ελέγχου (χρήση με list-nolabel)
list-nolabelΕμφανίζει μόνο πλαίσια ελέγχου, χωρίς ετικέτες (χρήση με label)
columns(N)Εμφάνιση σε N στήλες (επέκταση rtSurvey)

Παράδειγμα: Διάταξη 3 συμπαγών στηλών

typenamelabelappearance
select_multiple symptomssymptomsΕπιλέξτε όλα τα παρατηρηθέντα συμπτώματαcompact-3

Χρήση selected() σε εκφράσεις

Επειδή η αποθηκευμένη τιμή είναι συμβολοσειρά διαχωρισμένη με κενά, πρέπει να χρησιμοποιείτε selected() για να ελέγξετε εάν επιλέχθηκε συγκεκριμένη επιλογή. Η χρήση = δεν θα λειτουργεί σωστά.

Στο relevant

Εμφάνιση ερώτησης παρακολούθησης μόνο εάν επιλέχθηκε το “άλλο”:

typenamelabelrelevant
select_multiple cropscrops_grownΠοιες καλλιέργειες γίνονται;
textcrops_otherΠαρακαλώ διευκρινίστε άλλες καλλιέργειεςselected(${crops_grown}, 'other')

Στο constraint

Απαίτηση τουλάχιστον 2 επιλογών:

typenameconstraintconstraint_message
select_multiple issuesissuescount-selected(.) >= 2Επιλέξτε τουλάχιστον 2 ζητήματα

Περιορισμός σε μέγιστο 3:

typenameconstraintconstraint_message
select_multiple prioritiesprioritiescount-selected(.) <= 3Επιλέξτε το πολύ 3 προτεραιότητες

Στο calculate — σύνδεση επιλεγμένων ετικετών

Συνδυάστε selected-at(), count-selected() και choice-label() για δημιουργία αναγνώσιμης περίληψης:

typenamecalculation
calculatecrops_summaryjoin(’, ‘, ${crops_grown})

Επιλογή “Κανένα από τα παραπάνω” / αποκλειστική επιλογή

Ένα συνηθισμένο πρότυπο είναι να γίνεται μία επιλογή αμοιβαίως αποκλειόμενη με όλες τις άλλες. Χρησιμοποιήστε constraint για επιβολή:

typenamelabelconstraintconstraint_message
select_multiple issuesissuesΕπιλέξτε όλα τα παρόντα ζητήματαnot(selected(., 'none') and count-selected(.) > 1)Το “Κανένα” δεν μπορεί να επιλεγεί μαζί με άλλες επιλογές

choices:

list_namenamelabel
issueswaterΈλλειψη νερού
issuesroadsΚακοί δρόμοι
issueshealthΈλλειψη υπηρεσιών υγείας
issuesnoneΚανένα από τα παραπάνω

Μέτρηση και σύνοψη επιλογών

ΣυνάρτησηΠαράδειγμαΑποτέλεσμα
count-selected(field)count-selected(${crops_grown})Αριθμός επιλεγμένων επιλογών
selected(field, value)selected(${crops_grown}, 'maize')αληθής/ψευδής
selected-at(field, index)selected-at(${crops_grown}, 0)Πρώτη επιλεγμένη τιμή
choice-label(field, value)choice-label(${crops_grown}, 'maize')Ετικέτα για μια τιμή

Βέλτιστες πρακτικές

  1. Πάντα χρησιμοποιείτε selected() στα relevant, constraint και calculate — ποτέ = ή !=.
  2. Προσθέστε περιορισμό για περιορισμό του μέγιστου αριθμού επιλογών εάν το απαιτεί ο σχεδιασμός.
  3. Συμπεριλάβετε επιλογή “Κανένα” ή “Δεν εφαρμόζεται” όταν το μηδέν επιλογών είναι έγκυρη απάντηση.
  4. Για μεγάλες λίστες (15+ επιλογές), χρησιμοποιήστε minimal (αναπτυσσόμενο πολλαπλής επιλογής) για αποφυγή υπερβολικής κύλισης.
  5. Εξάγετε δεδομένα και χρησιμοποιήστε διαχωρισμό συμβολοσειράς στο εργαλείο ανάλυσής σας — η μορφή με κενά απαιτεί διαχωρισμό πριν τη συγκεντρωτική ανάλυση.

Περιορισμοί

  • Οι τιμές select_multiple δεν μπορούν να συγκριθούν απευθείας με =. Πάντα χρησιμοποιείτε selected().
  • Η συμπαγής εμφάνιση μπορεί να μην αποδίδεται καλά για πολύ μεγάλες ετικέτες επιλογών.
  • Κατά το φιλτράρισμα επιλογών με choice_filter, το φιλτράρισμα εφαρμόζεται σε όλες τις εμφανιζόμενες επιλογές, ίδια όπως στο select_one.
Ήταν χρήσιμη αυτή η σελίδα;