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 ExpressionScript

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 ExpressionScript sample surveys and the translation is 100% complete.


Innledning

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

Nedenfor finner du et utvalg 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 - gjør det mulig å overføre eller tilpasse svar og metadata for spørsmål;
  3. Dynamisk tilpasning - merk at rapportene endres på siden etter hvert som du svarer på spørsmål.
  4. Mikrotilpasning - betinget tilpasning i setninger og rapporter ved hjelp av if()-uttrykk
  5. Ligninger - en ny spørsmålstype som lar deg gjøre beregninger og lagre resultatene i databasen, selv om beregningen er skjult
  6. Betinget validering - valideringskriterier, 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 som avgjør om du er undervektig, normalvektig, overvektig eller fedme. Merk at det først bare vises 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 oppgitt og forteller deg vektstatusen din:



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



Det finnes skjulte spørsmål av typen ligning 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 neste sett med eksempler ser du hvordan du kan bruke matematiske og andre funksjoner i tilpassede rapporter. Slik ser siden ut før du har lagt inn noen 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».



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



Det finnes mange andre 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 antyder, kan du prøve ulike aldre, og spesielt 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 samsvarer med kjønn og/eller antall for 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 å lage en «løkke» av spørsmål. Etter at jeg hadde opprettet gruppen for Person 1, eksporterte jeg gruppen. Siden jeg brukte variabelnavn basert på qcode, 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, slik at alle variabler fikk unike navn og logikken på gruppenivå var riktig).

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

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


Demonstrerte EM-funksjoner

  1. Relevans på gruppenivå - Oppfølgingsgruppene (Person 1–5) vises bare for opptil antallet personer i husholdningen som er oppgitt;
  2. Tilpasning - Den avsluttende rapporten oppsummerer demografiske data for hver person i husholdningen;
  3. Progressiv visning av spørsmål - Enten du bruker gruppe-for-gruppe- eller alt-på-én-side-modus, vises påfølgende 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ør den «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 matrisefiltre

Oversikt

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


Skjermbilder

Legg merke til følgende:

  • 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 en kaskaderende array_filter_exclude)




Last ned

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


Pipe-funksjon/tilpasning med alle spørsmålstyper og attributter

Oversikt

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


For dette eksemplet anbefaler vi å slå av det innebygde HTML-skriveprogrammet (eller bytte det til popup-modus) når du redigerer denne undersøkelsen. Det kan ta et minutt eller mer før HTML-skriveprogrammet har vist 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 (slik at du ser 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 heller 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, nytenkt

Oversikt

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


Valideringstyper som vises

  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 svarene på spørsmålet
  8. max_num_value - maksimum tillatt sum av alle svarene på spørsmålet
  9. equals_num_value - summen av alle svarene på spørsmålet må være lik denne verdien
  10. validation - dette er valideringen med regulært uttrykk for spørsmålet - den kan gjelde for enkeltceller


Skjermbilder

Med nye CSS-stiler vises hver valideringstype som et eget tips. Hvis de vises, kan de skjules med alternativet hide_tip. Standard er at de vises 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 validering med regulære uttrykk sikrer at hver oppføring er et riktig formatert amerikansk telefonnummer med retningsnummer.



Last ned

Du kan laste ned eksempelet ovenfor via denne lenken: LS3_Validation_tests.zip.


Valideringsligninger

Oversikt

Noen ganger trenger du tilpasset 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.


EM-funksjoner som vises

  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 noen av underspørsmålene er ugyldige.

Når em_validation_sq brukes, blir vanligvis bakgrunnsfargen på en celle rød hvis cellen er ugyldig, 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 høyst 3 spørsmål besvares på hver 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 vist nedenfor. 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

Hvis du vil laste ned eksempelundersøkelsen som brukes i eksemplene ovenfor, klikker du på følgende lenke: ls2_test_em_sq_validation.lss.


Relevans for underspørsmål

Oversikt

Dette viser hvordan array_filter og valideringskriterier kan samhandle. 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

Det viser også dynamisk rapportering av antall besvarte spørsmål blant kjernespørsmålene.


Skjermbilder

Når du endrer antall synlige rader, endres summen dynamisk. Hvis du markerer et underspørsmål som irrelevant, tømmes 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 det spørsmålet fortsatt har verdien 14 (hvis du fjerner avkrysningen for det femte underspørsmålet, ser du verdien 14 igjen), bidrar ikke denne verdien til summen, fordi den for øyeblikket er irrelevant. All irrelevant data tømmes (settes til NULL i databasen) når svaret sendes inn, men den forblir tilgjengelig på siden i tilfelle respondentene ønsker eller trenger å endre svarene sine.



Nedlasting

Hvis du vil laste ned eksempelet vårt, klikker du her: ls2_subquestion_relevance.lss.


Bruke komma som desimalskilletegn

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å den måten fungerer statistiske analyser som de skal.

Hvis du vil endre desimalskilletegnet, åpner du alternativene under Tekstelementer i fanen Innstillinger og leter etter 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 kan du se at komma kan brukes som desimalskilletegn.



Nedlasting

Hvis du vil laste ned eksempelet ovenfor, klikker du på følgende lenke: 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 den samme, selv om du bytter språk.


Skjermbilder

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



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



Andre gang jeg testet undersøkelsen, ble det generert en annen randomisering.



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



Last ned

Hvis du vil laste ned eksemplet ovenfor, klikker du 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 til å vise ett tilfeldig spørsmål per gruppe. Den har 5 grupper med 6 spørsmål hver. Innledningsvis, 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 godt 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 den 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. Ligningsspørsmålstype
  2. Randomiseringsfunksjoner
  3. Betinget (if) funksjon


Skjermbilder

Dette er Group0, som bruker ligningsspørsmålstypen 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, bruker den en tilfeldig verdi til å sette verdien til ask1.



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



Last ned

Hvis du vil laste ned undersøkelseseksemplet ovenfor, klikker du her: Eksempel på undersøkelse med tilfeldige spørsmål i en gruppe.


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

  Dette gjelder bare for alle 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 kan stille 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 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 de andre spørsmålene i gruppen er mindre enn antallet spørsmål du vil vise. Siden relevanceStatus settes etter hvert som spørsmålene vises, gir dette i praksis det totale antallet foregående spørsmål.

I vårt eksempel med 5 av 10 spørsmål vil ligningen for Q1 altså 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 demonstreres

  1. relevanceStatus-variabelen
  2. Tilfeldig rekkefølge

Last ned

Du kan laste ned eksempelet ovenfor via følgende lenke: Eksempelundersøkelse med 5 tilfeldige av 10 spørsmål.

Vurdering av en brukerangitt liste over produkter

Oversikt

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


ES-funksjoner som demonstreres

  1. Skreddersydde svar - når produkter vurderes, hentes etikettene fra kommentarfeltet i det foregående flervalg-spørsmålet
  2. Skreddersydde skalaer - mange avanserte spørsmålsvalg, som skalaoverskrifter, kan også skreddersys.


Skjermbilder

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



Dette bildet viser hvordan de skreddersydde svarene angis:



Her er logikkfilen (Show Logic File) for dette spørsmålet. Den 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 skreddersys:



Det neste bildet viser logikkfilen for det siste spørsmålet. Som du kan se, kan underspørsmål, svar og skalaoverskrifter skreddersys.


Last ned

Du kan laste ned eksempelundersøkelsen ovenfor via følgende lenke: Eksempelundersøkelse for vurdering av en brukerangitt liste over produkter.