x

Hovedkapitler

  1. LimeSurvey Cloud vs LimeSurvey CE
  2. Hurtigstartveiledning - LimeSurvey 3.0+
  3. Installasjon - LimeSurvey CE
  4. Hvordan lage en god undersøkelse (veiledning)
  5. Komme i gang
  6. Administrere LimeSurvey
  7. Undersøkelser - introduksjon
  8. Innstillinger for undersøkelse
  9. Meny for undersøkelse
  10. Undersøkelsesstruktur
  11. Spørsmål - introduksjon
  12. Spørsmålsgrupper - introduksjon
  13. Undersøkelser - administrasjon
  14. Verktøylinjen for undersøkelsen
  15. Flerspråklig undersøkelse
  16. ExpressionScript-motor – Hurtigstartguide
  17. Ukategoriserte og avanserte funksjoner
  18. Vanlige spørsmål (generelt)
  19. Feilsøking
  20. Løsninger og omveier
  21. Lisens
  22. Versjonsendringer
  23. Tillegg
 Actions

Eksempelundersøkelser for Expression Manager

From LimeSurvey Manual

Denne siden kan være maskinoversatt og kan inneholde feil. Vis den engelske originalen · Forbedre denne oversettelsen
This page is a translated version of the page Expression Manager sample surveys and the translation is 100% complete.


Introduksjon

Den beste måten å lære å bruke ExpressionScript på er å prøve ut fungerende eksempler og tilpasse dem til dine behov.

Nedenfor finner du en rekke eksempelundersøkelser som viser (og tester) hvordan EM kan brukes til å forbedre undersøkelsen din. Disse undersøkelsene finnes i mappen /docs/demosurveys i distribusjonen.


Relevans, tilpasning og ligninger

Oversikt

Følgende eksempel beregner BMI (kroppsmasseindeks) for hver respondent. Se nedenfor for funksjonene som vises i dette eksempelet.

EM-funksjoner som vises

  1. Relevans - støtte for kraftig betinget logikk;
  2. Piping / tilpasning - gir mulighet til å sette inn eller tilpasse svar og metadata for spørsmål;
  3. Dynamisk tilpasning - merk at rapporter endres på siden mens du svarer på spørsmål.
  4. Mikrotilpasning - betinget tilpasning inne i setninger og rapporter ved hjelp av if()-setninger
  5. Ligninger - en ny spørsmålstype som lar deg utføre beregninger og lagre resultatene i databasen, selv om beregningen er skjult
  6. Betinget validering - valideringskriterier, som for eksempel minste tillatte verdi, kan være betingede - f.eks. basert på ligninger.


Skjermbilder

Dette eksempelet beregner kroppsmasseindeksen (BMI), en beregning basert på vekt og høyde for å avgjøre om du er overvektig. Merk at du innledningsvis bare ser de fire obligatoriske spørsmålene:



Når du har lagt inn opplysningene dine (og du kan velge om du vil bruke metriske eller ikke-metriske enheter), ser du en tilpasset rapport som oppsummerer det du har lagt inn, og viser hvilken vektstatus du har:



Her er et annet eksempel som bruker ikke-metriske enheter for å vise hvordan resultatet endres dynamisk:



Det finnes skjulte ligningsspørsmål på internt nivå som konverterer dataene til metriske enheter (om nødvendig) og lagrer metrisk høyde, vekt, BMI og vektstatus i databasen uten behov for egendefinert JavaScript.

I de neste eksemplene kan du se hvordan du kan bruke matematiske og andre funksjoner i tilpassede rapporter. Slik ser siden ut før du legger inn data. Det finnes betinget logikk som viser tomme celler hvis det ikke er lagt inn data (eller dataene ikke er numeriske), i stedet for å vise «NaN» eller «Divide by Zero».



Når tall legges inn, endres rapporten på siden slik at den viser beregningen som utføres og resultatet av den.



Det finnes mange flere eksempler i denne eksempelundersøkelsen. Skjermbildet nedenfor viser for eksempel én av dusinvis av måter du kan fylle ut siden Dynamic Relevance på. Som hjelpeteksten nevner, kan du prøve ulike aldre, og særlig ulogiske kombinasjoner av svar, for å se de morsomme meldingene som genereres nederst. Merk også at hvis du oppgir at du har mer enn ett barn, vil meldingen si «I hope you enjoy playing with your X children» i stedet for «I hope you enjoy playing with your child». Dette viser hvordan du enkelt kan mikrotilpasse setninger slik at de passer til kjønnet og/eller antallet til deltakerne dine. Du kan til og med enkelt bøye verb og substantiv etter kjønn og tall.



Nedlasting

For å få tilgang til eksempelundersøkelsen, klikk på følgende lenke: LS3_em_tailoring.zip.

Eksempel på folketelling

Oversikt

Dette er et eksempel på en folketelling som spør hvor mange personer som bor i husholdningen din.

Det viser hvordan relevans på gruppenivå kan gjøre det enklere å implementere en «løkke» av spørsmål. Etter at jeg hadde opprettet gruppen for Person 1, eksporterte jeg gruppen. Siden jeg brukte qcode-variabelnavn som p1_name i stedet for SGQA-koden, kunne jeg bruke et tekstredigeringsprogram til raskt å redigere og importere gruppen på nytt flere ganger (det tok for eksempel omtrent 10 sekunder å redigere og importere hver gjentatte gruppe på nytt, slik at alle variabler fikk unike variabelnavn og logikken på gruppenivå var riktig).

Du kan også bruke funksjonen Kopier spørsmål, men den er ikke like rask som alternativet som er foreslått ovenfor.

Dette viser også hvordan du kan hindre at meldingen «Fullført» vises før undersøkelsen virkelig er ferdig (f.eks. når alle nødvendige grupper er fullført).


EM-funksjoner som demonstreres

  1. Relevans på gruppenivå - Oppfølgingsgruppene (Person 1–5) vises bare for så mange personer i husholdningen som er oppgitt;
  2. Tilpasning (tailoring) - Sluttrapporten oppsummerer de demografiske dataene for hver person i husholdningen;
  3. Gradvis visning av spørsmål - Enten du bruker gruppemodus eller alt-på-én-side-modus, vises neste spørsmål først når de foregående er besvart.


Skjermbilder

Undersøkelsen genererer en tilpasset rapport som viser demografien til det oppgitte antallet personer i husholdningen:



Hvis du bytter til modus med ett spørsmål om gangen, ser du at indeksen tilpasser spørsmålene. Siden brukeren oppga at personen er en kvinne, spørres det «Hva heter hun?». Og siden vi svarte «Mary», står det i neste spørsmål «Hvor gammel er Mary?».



Last ned

Klikk her for å laste ned eksempelundersøkelsen: LS3_group_relevance.zip.


Kaskaderende matrisefilter

Oversikt

Denne undersøkelsen er basert på utformingen av en undersøkelse levert av Joy Lane Research, LLC.


Skjermbilder

Merk følgende i eksemplet nedenfor:

  • Q02 viser bare produktene som er avhuket i Q01 (ved hjelp av array_filter)
  • Q02 viser også «Another product», teksten som er skrevet inn i feltet «Other electronic» i Q01
  • Q04 viser bare produkter fra Q02 som var avhuket (slik at matrisefilteret kaskaderer)
  • Q05 viser bare produkter fra Q02 som ikke var avhuket i Q02 (ved hjelp av et kaskaderende array_filter_exclude)




Last ned

Klikk på følgende lenke for å laste ned eksempelet ovenfor: LS2_cascading_array_filter – eksempelundersøkelse.


Piping/tilpasning med alle spørsmålstyper og attributter

Oversikt

Hvis du er usikker på hvordan du skal navngi variablene dine (SGQA eller Qcodes), er du ikke alene. Selv om hoveddokumentasjonen beskriver hvordan du setter sammen variabelnavn med Qcode, er det ingenting som slår å se det i en fungerende demo. Denne undersøkelsen viser hvordan du kan få tilgang til spørsmålsattributter og svar ved hjelp av ExpressionScript.


For dette eksempelet anbefaler vi at du slår av det innebygde HTML-skriveprogrammet (eller bytter det til popup-modus) når du redigerer denne undersøkelsen. Det kan ta et minutt eller mer før HTML-skriveprogrammet har gjengitt de store HTML-rapportene i redigeringsmodus.


Innhold

  • Eksempler på alle spørsmålstyper
  • Alle spørsmålstyper som kan bruke «Annet» er med, slik at du kan se hvordan det påvirker navngivingen av variabler
  • Standardverdier for alle spørsmålstyper som godtar standardverdier
  • Tilpasning – rapporter på og utenfor siden som viser alle de 16 tilgjengelige EM-suffiksene i punktnotasjon.
  • Disse rapportene viser alle dataene som er skrevet inn så langt (og viser dermed hvordan du kan lage dine egne utskriftsvennlige rapporter for brukere i stedet for skjermbildet for utskrift av svar)
  • Riktig navngiving av alle variabler med Qcode og SGQA


Skjermbilder

Dette er en svært stor undersøkelse, så vi har valgt å ikke ta med skjermbilder. Last den i stedet ned og prøv den selv.


Last ned

Klikk på følgende lenke for å laste ned undersøkelsen: LS3_EM_question_attributes.lss


Tradisjonell validering, tenkt på nytt

Oversikt

Dette viser alle valideringstyper som bruker uttrykk, og hvordan de påvirker hver av spørsmålstypene som støtter validering. I mange tilfeller er valideringstipsene skjult fra start og vises bare hvis et spørsmål ikke oppfyller valideringskriteriene (og forsvinner igjen når spørsmålet oppfyller dem).


Viste valideringstyper

  1. min_num_value_n - minimumsverdi for et svar
  2. max_num_value_n - maksimumsverdi for et svar
  3. min_answers - minimum antall svar som kreves
  4. max_answers - maksimum antall svar som er tillatt
  5. multiflexible_min - minimumsverdi som er tillatt for et svar (for spørsmålstypen multiflexi-tall)
  6. multiflexible_max - maksimumsverdi som er tillatt for et svar (for spørsmålstypen multiflexi-tall)
  7. min_num_value - minimum tillatt sum av alle svar for spørsmålet
  8. max_num_value - maksimum tillatt sum av alle svar for spørsmålet
  9. equals_num_value - summen av alle svar for spørsmålet må være lik denne verdien
  10. validation - dette er valideringen med regulært uttrykk for spørsmålet - den kan brukes på enkeltceller


Skjermbilder

Med nye CSS-stiler vises hver valideringstype som et eget tips. Hvis de vises, kan de skjules via alternativet hide_tip. Standardvalget er å vise dem med rød skrift hvis spørsmålet ikke oppfyller valideringskriteriene, og grønn hvis det oppfyller dem:



En bruker kan ikke sende inn en side med valideringsfeil. Brukeren får umiddelbart en advarsel hvis feil informasjon er oppgitt:



Validering kan brukes på enkeltceller i en matrise, for eksempel i dette eksempelet der valideringer med regulære uttrykk sikrer at hver verdi er et riktig formatert amerikansk telefonnummer med retningsnummer.



Nedlasting

Hvis du vil laste ned eksempelet ovenfor, klikker du på følgende lenke: LS3_Validation_tests.zip.


Valideringsligninger

Oversikt

Noen ganger trenger du egendefinert validering som ikke kan oppnås med de tradisjonelle min/maks-kriteriene. Da må du bruke alternativene em_validation_q og em_validation_sq, som lar deg lage komplekse valideringsligninger på henholdsvis spørsmålsnivå og underspørsmålsnivå.


På underspørsmålsnivå introduserer vi også variabelen «this», som gjør det enkelt å validere hver celle i en matrise uten å vite variabelnavnet. Klikk her for mer informasjon om den.


Viste funksjoner i Expression Manager (EM)

  1. em_validation_q - dette er en ligning som avgjør om hele spørsmålet er gyldig
  2. em_validation_q_tip - dette er meldingen som vises hvis spørsmålet ikke oppfyller kriteriene i em_validation_q
  3. em_validation_sq - dette er ligningen som avgjør om hvert underspørsmål (matrisecelle) er gyldig
  4. em_validation_sq_tip - dette er meldingen som vises hvis et av underspørsmålene er ugyldig.

Generelt gjelder at når em_validation_sq brukes, og en celle er ugyldig, blir bakgrunnsfargen på cellen rød for å vise at det er en feil.


Skjermbilder


Dette spørsmålet sørger for at du oppgir barnas alder i synkende rekkefølge ved å bruke denne valideringsligningen:

q1_sq1 >= q1_sq2 && q1_sq2 >= q1_sq3 && q1_sq3 >= q1_sq4





I eksempelet nedenfor sørger valideringen for at ikke mer enn 3 spørsmål besvares på en gitt rad, ved å bruke denne valideringsligningen:

(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)

Du kan også skrive dette som følger. LimeSurvey konverterer det automatisk til uttrykket ovenfor under kjøring.

(sum(self.sq_A) <= 3) && (sum(self.sq_B) <= 3) && (sum(self.sq_C) <= 3)



Nedlasting

Klikk på følgende lenke for å laste ned eksempelundersøkelsen som brukes i eksemplene ovenfor: ls2_test_em_sq_validation.lss.


Relevans for underspørsmål

Oversikt

Dette viser hvordan array_filter og valideringskriterier kan samspille. For valideringer som gjelder summer, tas bare relevante (synlige) verdier med i beregningen.


EM-funksjoner som demonstreres

  1. array_filter
  2. array_filter_exclude
  3. min_num_value
  4. max_num_value
  5. equals_num_value

Den viser også dynamisk rapportering av antall besvarte spørsmål i kjernespørsmålene.


Skjermbilder

Når du endrer antall synlige rader, endres summen dynamisk. Å markere et underspørsmål som irrelevant fjerner ikke verdien. Hvis underspørsmålet er irrelevant, bidrar derimot ikke verdiene til noen ligning.



Legg merke til hva som skjer når vi krysser av for «Fifth subquestion» i det første spørsmålet «Which rows should appear below». Summen for det andre spørsmålet, «Enter some numbers», er nå 5. Selv om underspørsmål 5 i dette spørsmålet fortsatt har verdien 14 (hvis du fjerner avkrysningen for det femte underspørsmålet, ser du verdien 14 igjen), bidrar denne verdien ikke til summen, siden den for øyeblikket er irrelevant. Alle irrelevante data tømmes (settes til NULL i databasen) når undersøkelsen sendes inn, men de er fortsatt tilgjengelige på siden i tilfelle respondentene vil eller må endre svarene sine.



Nedlasting

Klikk her for å laste ned eksempelet vårt: ls2_subquestion_relevance.lss.


Bruke komma som desimalskilletegn (desimaltegn)

Oversikt

ExpressionScript sørger for at bare gyldige tall kan skrives inn i numeriske felt. Hvis du skriver inn et ugyldig tall, får du en advarsel om at noe er galt (for eksempel blir hele spørsmålet «rødfarget» i temaet fruity).

Merk at numeriske verdier alltid konverteres til å bruke punktum som desimalskilletegn i databasen. På denne måten fungerer statistiske analyser som de skal.

For å endre desimalskilletegn går du til alternativene for Tekstelementer under fanen Innstillinger og finner funksjonen Desimalskilletegn.


For mer informasjon om hva et desimalskilletegn er, klikk [https://en.wikipedia.org/wiki/Radix_point


Spørsmålstyper som bruker desimalskilletegn

  1. Numerisk [N]
  2. Numerisk, flere [K]
  3. Matrise (tall) [:]
  4. Matrise (tekst) [;], når attributtet numbers_only brukes
  5. Liste (radioknapper) [L], når attributtet other_numbers_only brukes
  6. Kort fritekst [S], når attributtet numbers_only brukes
  7. Flere korte tekstfelt [Q], når attributtet numbers_only brukes
  8. Flervalg [M], når attributtet other_numbers_only brukes
  9. Flervalg med kommentarer [P], når attributtet other_numbers_only brukes


Skjermbilder

I skjermbildene nedenfor ser du at komma kan brukes som desimalskilletegn.



Nedlasting

Klikk på følgende lenke for å laste ned eksempelet ovenfor: ls2_comma_as_radix_separator.lss.


Randomiseringsgrupper

Oversikt

Denne undersøkelsen viser hvordan du bruker attributtet random_group.

Hvis dette attributtet brukes, blir rekkefølgen på spørsmålene randomisert hver gang du starter undersøkelsen. Når undersøkelsen først er startet, forblir imidlertid randomiseringsrekkefølgen fast, selv om du bytter språk.


Skjermbilder

La oss se på eksemplet nedenfor. Det første tilfeldige spørsmålet på siden blir enten Q1, Q4 eller Q7. Det andre randomiserte spørsmålet på siden blir enten Q2, Q5 eller Q8.



Her er randomiseringen som ble generert første gang jeg testet denne undersøkelsen.



En annen randomisering ble generert andre gang jeg testet undersøkelsen.



Men da jeg byttet til fransk (uten å starte undersøkelsen på nytt), forble randomiseringsrekkefølgen den samme.



Nedlasting

Du kan laste ned eksemplet ovenfor ved å klikke på følgende lenke: Randomization_Group_Test.lss


Still ett tilfeldig spørsmål per gruppe

Oversikt

Denne undersøkelsen viser hvordan du kan konfigurere en undersøkelse slik at ett tilfeldig spørsmål vises per gruppe. Den har 5 grupper med 6 spørsmål hver. I starten, i gruppe 0, fylles fem skjulte ligningsspørsmål, kalt ask1-ask5, ut. Hvert av dem har verdien {floor(rand(1,6.9999))} i spørsmålsteksten, noe som betyr at variablene ask1-ask5 hver får en verdi mellom 1 og 6. Deretter har hvert spørsmål i gruppen en relevanseligning som "ask1==N", der N er det N-te spørsmålet i gruppen (så det tredje spørsmålet i gruppe 1 har relevanseligningen "ask1==3").

Denne undersøkelsen fungerer like bra i formatene alt i ett, gruppe for gruppe og spørsmål for spørsmål. Siden randomiseringen settes i den første gruppen, og denne gruppen i praksis er skjult (fordi alle ask1-ask5-spørsmålene er skjult), forblir randomiseringen den samme for deltakeren, men hver deltaker får sin egen randomisering.


Funksjoner som vises

  1. Spørsmålstypen Ligning
  2. Randomiseringsfunksjoner
  3. Betinget (if) funksjon


Skjermbilder

Dette er Group0, som bruker spørsmålstypen Ligning til å velge tilfeldige verdier fra 1 til 6 for hver gruppe (unntatt den siste gruppen, som bare har 4 spørsmål). Merk at funksjonen "if()" først sjekker om ask1 allerede er satt, og i så fall bruker den denne verdien. Hvis verdien ikke er satt, brukes en tilfeldig verdi til å sette verdien av ask1.



Denne gruppen viser hvordan variabelen (ask4) fra Group0 brukes til å styre hvilket spørsmål som er synlig i den fjerde gruppen.



Nedlasting

Du kan laste ned undersøkelseseksemplet ovenfor ved å klikke her: Eksempel på undersøkelse med tilfeldige spørsmål i en gruppe.


Still et bestemt antall tilfeldige spørsmål i en gruppe (et utvalg av spørsmålene)

  Dette gjelder bare når alle spørsmålene er tilfeldige spørsmål fra én gruppe, og bare hvis formatet Gruppe for gruppe eller Alt i ett brukes.



Oversikt

Denne undersøkelsen viser hvordan du stiller et tilfeldig utvalg av spørsmål i en gruppe. Du kan for eksempel vise 5 tilfeldige spørsmål av 10 spørsmål i en gruppe.

Undersøkelsen har én gruppe med 10 spørsmål. Alle spørsmålene har fått samme navn på tilfeldig-gruppe. Dermed vises de i tilfeldig rekkefølge når siden lastes. Hvert spørsmål får en relevanseligning som sier at summen av «relevanceStatus» for alle andre spørsmål i gruppen er mindre enn antallet spørsmål du vil vise. Siden relevanceStatus tildeles etter hvert som spørsmålene vises, gir dette i praksis det totale antallet foregående spørsmål.

I eksempelet vårt med 5 av 10 spørsmål vil ligningen for Q1 derfor være:

sum(Q2.relevanceStatus, Q3.relevanceStatus, Q4.relevanceStatus, Q5.relevanceStatus, Q6.relevanceStatus, Q7.relevanceStatus, Q8.relevanceStatus, Q9.relevanceStatus, Q10.relevanceStatus) LT 5

For Q2 vil den være:

sum(Q1.relevanceStatus, Q3.relevanceStatus, Q4.relevanceStatus, Q5.relevanceStatus, Q6.relevanceStatus, Q7.relevanceStatus, Q8.relevanceStatus, Q9.relevanceStatus, Q10.relevanceStatus) LT 5

Og så videre ...


Funksjoner som vises

  1. relevanceStatus-variabelen
  2. Tilfeldig rekkefølge


Last ned

Klikk på følgende lenke for å laste ned eksempelet ovenfor: Eksempelundersøkelse med tilfeldig 5 av 10.

Vurdering av en liste med produkter oppgitt av brukeren

Oversikt

Eksempelet nedenfor viser hvordan du kan be brukere liste opp en rekke produkter de er interessert i, og deretter be dem vurdere disse produktene.


EM-funksjoner som vises

  1. Tilpasning av svar - når produkter vurderes, hentes etikettene fra kommentarfeltet i det foregående flervalgsspørsmålet
  2. Tilpasning av skalaer - mange avanserte spørsmålsalternativer, som skalaoverskrifter, kan også tilpasses.


Skjermbilder

Dette bildet viser at selv om bare produkt 1, 3 og 5 ble valgt, vises bare disse tre (ved hjelp av attributten array_filter). Radetikettene i det andre spørsmålet er dessuten enten produktnumrene (hvis ingenting er skrevet inn i kommentarfeltet) eller innholdet i kommentarfeltene.



Dette bildet viser hvordan de tilpassede svarene angis:



Her er logikkfilen for dette spørsmålet, som lar oss kontrollere at den betingede logikken fungerer som ønsket (for eksempel for å se om det finnes syntaksfeil):



Det neste bildet viser en gruppe der du angir en vurderingsskala med 5 punkter (alternativ 1–5), tittelen på skalaen og produktene du vil vurdere. Det siste spørsmålet viser at hver del av matrisespørsmålet kan tilpasses:



Det neste bildet viser logikkfilvisningen for det siste spørsmålet. Som du ser, kan delspørsmål, svar og skalaoverskrifter tilpasses.



Last ned

Klikk på følgende lenke for å laste ned eksempelundersøkelsen ovenfor: Eksempelundersøkelse med vurdering av brukeroppgitt produktliste.