Vzorčne ankete Expression Managerja
From LimeSurvey Manual
Uvod
Najboljši način, da se naučite uporabljati ExpressionScript, je, da se igrate z delujočimi primeri in jih prilagodite svojim potrebam.
Spodaj lahko najdete nabor vzorčnih anket, ki prikazujejo (in preizkusijo), kako lahko EM uporabite za izboljšanje vaše ankete. Te ankete lahko najdete v mapi /docs/demosurveys distribucije.
Ustreznost, prilagajanje in enačbe
Pregled
Naslednji primer izračuna BMI (indeks telesne mase) vsakega anketiranca. Spodaj si oglejte funkcije, ki so prikazane v tem primeru.
Demonstrirane funkcije EM
- 'Ustreznost - podpora za zmogljivo pogojno logiko;
- Piping / Tailoring - ponuja možnost napeljave ali prilagajanja odgovorov in metapodatkov vprašanj;
- Dinamično prilagajanje - upoštevajte, da se poročila spreminjajo na strani, ko odgovarjate na vprašanja.
- Mikro krojenje - pogojno prilagajanje s stavki in poročila z uporabo stavkov if()
- Enačbe - nova vrsta vprašanja, ki vam omogoča izračune in shranjevanje rezultatov v bazo podatkov, tudi če je izračun skrit
- Pogojno preverjanje' - preverjanje kriteriji, kot je najmanjša dovoljena vrednost, so lahko pogojni – npr. na podlagi enačb.
Posnetki zaslona
Ta primer izračuna indeks telesne mase, izračun vaše teže in višine za ugotavljanje, ali imate prekomerno telesno težo. Upoštevajte, da na začetku vidite le štiri obvezna vprašanja:
Ko vnesete svoje podatke (in lahko izberete, ali boste uporabili metrične ali nemetrične enote), vidite prilagojeno poročilo, ki povzema, kar ste vnesli, in vam pove stanje vaše teže:
Tukaj je drugačen primer z uporabo nemetričnih enot za prikaz, kako se rezultat dinamično spreminja:
Obstajajo skrite vprašanja tipa enačbe na notranji ravni, ki pretvori podatke v metriko (če je potrebno), shranjuje metrično višino, težo, ITM in status teže v zbirki podatkov, ne da bi potreboval JavaScript po meri .
V naslednjem nizu primerov si lahko ogledate, kako lahko uporabite matematične in druge funkcije znotraj prilagojenih poročil. Tako izgleda stran, preden vnesete podatke. Obstaja pogojna logika za prikaz praznih celic, če niso vneseni nobeni (ali neštevilski) podatki, namesto da bi prikazali »NaN« ali »Deli z ničlo«.
Ko so številke vnesene, se poročilo na strani spremeni in prikaže izvedeni izračun in njegov rezultat.
V tej vzorčni raziskavi je veliko drugih primerov. Spodnji posnetek zaslona na primer prikazuje enega od ducatov načinov, kako lahko izpolnite stran z dinamično ustreznostjo. Kot piše v besedilu pomoči, poskusite različne starosti in še posebej nelogične kombinacije odgovorov, da vidite zabavna sporočila, ustvarjena na dnu. Upoštevajte tudi, da če rečete, da imate več kot enega otroka, bo sporočilo pisalo "Upam, da uživate v igri s svojimi X otroki", namesto "Upam, da uživate v igri s svojim otrokom". To kaže, kako lahko preprosto mikroprikrojite stavke, da se ujemajo s spolom in/ali številom vaših predmetov. Z lahkoto lahko celo spregate glagole in zavrnete samostalnike glede na spol in število.
Prenos
Za dostop do vzorca ankete kliknite naslednjo povezavo: LS3_em_tailoring.zip.
Vzorec popisa
Pregled
To je primer popisa, ki sprašuje, koliko ljudi je v vašem gospodinjstvu.
Prikazuje, kako lahko ustreznost na ravni skupine olajša implementacijo "zanke" vprašanj. Ko sem ustvaril skupino za osebo 1, sem izvozil skupino. Ker sem namesto kode SGQA uporabil imena spremenljivk qcode, kot je p1_name, sem lahko uporabil urejevalnik besedil za hitro urejanje in večkratni ponovni uvoz skupine (npr. urejanje in ponovni uvoz vsake ponavljajoče se skupine je trajalo približno 10 sekund, kar je zagotovilo da so vse spremenljivke imele edinstvena imena spremenljivk in da je bila logika na ravni skupine pravilna).
Lahko tudi funkcijo kopiraj vprašanje, vendar ne bo tako hitra kot zgoraj predlagana možnost.
To tudi prikazuje, kako lahko preprečite prikaz sporočila Končano, dokler anketa ni resnično končana (npr. ko so izpolnjene vse potrebne skupine).
Demonstrirane funkcije EM
- 'Ustreznost na ravni skupine' - Spremljevalne skupine (Osebe 1-5) so prikazane samo za največ navedeno število sostanovalcev;
- Prilagoditev' - Končno poročilo povzema demografske podatke za vsakega sostanovalca;
- Progresivni prikaz vprašanj - Ne glede na to, ali gre za skupinski ali način vse-v-enem, se naslednja vprašanja prikažejo šele, ko je odgovorjen na prejšnja.
Posnetki zaslona
Anketa ustvari prilagojeno poročilo, ki prikazuje demografske podatke določenega števila sostanovalcev:
Če preklopite na način vprašanja naenkrat, vidite, da indeks prilagaja vprašanja. Ker je uporabnik rekel, da je oseba ženska, vpraša "Kako ji je ime". In ker smo odgovorili "Mary", je naslednje vprašanje "Koliko je stara Mary"?
Prenos
Če želite prenesti vzorec ankete, kliknite tukaj: LS3_group_relevance.zip.
Kaskadni matrični filtri
Pregled
Ta anketa temelji na zasnovi ankete, ki jo je izvedlo Joy Lane Research, LLC.
Posnetki zaslona
V nadaljevanju upoštevajte, da:
- Q02 prikazuje samo niz izdelkov, preverjenih v Q01 (z uporabo array_filter)
- Q02 prikazuje tudi "Drug izdelek", besedilo, vneseno v polje "Druga elektronika" v Q01
- Q04 prikazuje samo izdelke iz Q02, ki so bili preverjeni (zato filter matrike kaskadira)
- Q05 prikazuje samo izdelke iz Q02, ki niso bili preverjeni v Q02 (z uporabo kaskadnega array_filter_exclude)
Prenos
Kliknite naslednjo povezavo za prenos zgornjega primera: LS2_cascading_array_filter primer ankete.
Piping/prilagoditev z uporabo vseh vrst vprašanj in atributov
Pregled
Če ste zmedeni, kako poimenovati svoje spremenljivke (SGQA proti Qcodes), niste sami. Čeprav glavna dokumentacija opisuje kako sestaviti imena spremenljivk Qcode, ni nič boljšega od tega, da si ga ogledate v delujoči predstavitvi. Ta anketa prikazuje, kako lahko dostopate do atributov vprašanj in odgovorov s pomočjo ExpressionScript.
Vsebina
- Primeri vsake vrste vprašanja
- Vključeni so vsi tipi vprašanj, ki lahko uporabljajo "drugo", tako da lahko vidite, kako to vpliva na poimenovanje spremenljivk
- Privzete vrednosti za vse vrste vprašanj, ki sprejemajo privzete
- Prilagajanje - Poročila na strani in zunaj nje, ki prikazujejo vseh 16 razpoložljivih pripon EM pikčastega zapisa.
- Ta poročila prikazujejo vse trenutno vnesene podatke (zato vam pokažemo, kako lahko ustvarite lastna natisljiva poročila za uporabnike namesto tiskanih zaslon z odgovori)
- Pravilno poimenovanje Qcode in SGQA vseh spremenljivk
Posnetki zaslona
To je obsežna raziskava, zato smo se odločili, da ne bomo vključili posnetkov zaslona. Namesto tega ga prenesite in se igrajte z njim.
Prenos
Za prenos ankete kliknite naslednjo povezavo: LS3_EM_question_attributes.lss
Tradicionalna validacija, na novo zasnovana
Pregled
To prikazuje vse vrste preverjanja, ki uporabljajo izraze, in kako vplivajo na posamezne vrste vprašanj, ki podpirajo preverjanje. V mnogih primerih se namigi za preverjanje začnejo skriti in se prikažejo samo, če vprašanje ne izpolnjuje meril za preverjanje (torej tudi izginejo, ko vprašanje prestane merila za preverjanje).
Prikazane vrste preverjanja
- min_num_value_n - najmanjša vrednost za odgovor
- max_num_value_n - največja vrednost za odgovor
- min_answers - najmanjša zahtevano število odgovorov
- max_answers največje dovoljeno število odgovorov
- multiflexible_min - najmanjša dovoljena vrednost za odgovor (za vrsto vprašanja s številkami multiflexi)
- multiflexible_max - največja dovoljena vrednost za odgovor (za vrsto vprašanja s številkami multiflexi)
- min_num_value - najmanjša dovoljena vsota vseh odgovorov za vprašanje
- max_num_value - največja dovoljena vsota vseh odgovorov na vprašanje
- equals_num_value - vsota vseh odgovorov na vprašanje mora biti enaka tej vrednosti
- validacija - to je validacija regularnega izraza za vprašanje - lahko velja za posamezne celice
Posnetki zaslona
Z uporabo novih slogov CSS se za vsako vrsto preverjanja prikaže ločen nasvet. Če so prikazani, jih je mogoče skriti z možnostjo hide_tip. Privzeta možnost je, da jih prikažete z rdečo pisavo, če vprašanje ne izpolnjuje meril za preverjanje, in z zeleno, če jih prestane:
Uporabnik ne more predložiti strani z napakami pri preverjanju. Če so vnesli napačne podatke, bodo takoj opozorjeni:
Preverjanje veljavnosti je mogoče uporabiti za posamezne celice v matriki, kot na primer v tem primeru, kjer preverjanje regularnih izrazov zagotavlja, da je vsak vnos pravilno oblikovana telefonska številka ZDA, vključno z območno kodo.
Prenos
Če želite prenesti zgornji primer, kliknite naslednjo povezavo: LS3_Validation_tests.zip.
Validacijske enačbe
Pregled
Včasih potrebujete preverjanje po meri, ki ga ni mogoče doseči z uporabo tradicionalnih najmanjših/največjih meril. Za to boste morali uporabiti možnosti em_validation_q in em_validation_sq, ki vam omogočata, da sestavite kompleksne validacijske enačbe na ravni vprašanja oziroma podvprašanja.
Demonstrirane funkcije EM
- em_validation_q - to je enačba, ki določa, ali je celotno vprašanje veljavno
- em_validation_q_tip - to je sporočilo, ki se prikaže, če vprašanje ne izpolnjuje kriterijev em_validation_q
- em_validation_sq - to je enačba, ki določa, ali je vsako podvprašanje (matrična celica) veljavno
- em_validation_sq_tip - to je sporočilo, ki se prikaže, če obstaja podvprašanj je neveljavno.
Na splošno se pri uporabi em_validation_sq, če je katera koli celica neveljavna, barva ozadja te celice obarva rdeče, kar pomeni, da je prišlo do napake.
Posnetki zaslona
To vprašanje zagotavlja, da vnesete starost svojih otrok v padajočem vrstnem redu z uporabo te potrditvene enačbe:
q1_sq1 >= q1_sq2 && q1_sq2 >= q1_sq3 && q1_sq3 >= q1_sq4
V spodnjem primeru preverjanje zagotavlja, da v kateri koli dani vrstici ni odgovorjeno na več kot 3 vprašanja z uporabo te potrditvene enačbe:
(vsota(Test_A_1, Test_A_2, Test_A_3, Test_A_4, Test_A_5) <= 3) && (vsota(Test_B_1, Test_B_2, Test_B_3, Test_B_4, Test_B_5) <= 3) && (vsota(Test_C_1, Test_C_2, Test_C_3, Test_C_4, Test_C_5) < = 3)
To lahko zapišete tudi na naslednji način, pri čemer ga LimeSurvey med izvajanjem samodejno pretvori v zgoraj navedeni izraz.
(sum(self.sq_A) <= 3) && (sum(self.sq_B) <= 3) && (sum(self.sq_C) <= 3)
Prenos
Če želite prenesti vzorec ankete, uporabljen v zgornjih primerih, kliknite naslednjo povezavo: ls2_test_em_sq_validation.lss.
Ustreznost podvprašanja
Pregled
To prikazuje, kako lahko array_filter in merila za preverjanje medsebojno delujejo. Za validacije, ki veljajo za vsote, se upoštevajo samo ustrezne (vidne) vrednosti.
Demonstrirane funkcije EM
Prikazuje tudi dinamično poročanje o številu vprašanj, na katera so odgovorili v ključnih vprašanjih.
Posnetki zaslona
Spreminjanje števila vidnih vrstic dinamično spremeni vsoto. Označevanje podvprašanja kot nepomembnega ne počisti njegove vrednosti. Namesto tega, če je nepomemben, njegove vrednosti ne prispevajo k nobeni enačbi.
Upoštevajte, kaj se zgodi, ko označimo "Peto podvprašanje" za prvo vprašanje "Katere vrstice naj se prikažejo spodaj". Upoštevajte, da je vsota za drugo vprašanje "Vnesite nekaj številk" zdaj 5. Čeprav ima podvprašanje 5 za to vprašanje še vedno vrednost 14 (npr. če počistite peto podvprašanje, boste znova videli vrednost 14) , ta vrednost ne prispeva k vsoti, ker je trenutno nepomembna. Vsi nepomembni podatki so ob oddaji izbrisani (v zbirki podatkov označeni za NULL), vendar ostanejo na voljo na strani, če si uporabniki želijo ali si morajo premisliti glede odgovorov.
Prenos
Če želite prenesti naš primer, kliknite tukaj: ls2_subquestion_relevance.lss.
Uporaba vejice kot ločila korena (decimalna vejica)
Pregled
ExpressionScript zagotavlja, da je v številska polja mogoče vnesti samo veljavna števila. Če vnesete neveljavno številko, boste opozorjeni, da je nekaj narobe (npr. v primeru sadne teme je celotno vprašanje "rdeče-rdečo").
Upoštevajte, da se številske vrednosti vedno pretvorijo v uporabo pike kot ločila korena v zbirki podatkov. Na ta način bodo statistične analize delovale ustrezno.
Če želite spremeniti ločilo radiksa, odprite možnosti Besedilni elementi pod zavihkom Nastavitve in poiščite funkcijo decimalno znamenje.
Vrste vprašanj z uporabo ločila radix
- Numerični vnos [ N]
- Večštevilski vnos [ K]
- Matrika (števila) [ :]
- Matrika (besedila) [ ;], če uporabljate atribut numbers_only
- Seznam (radio) [ L], če uporabljate atribut other_numbers_only
- Kratko prosto besedilo [ S], če uporabljate atribut numbers_only
- Več kratkih besedil [ Q], če uporabljate atribut numbers_only
- več možnosti [ M], če uporabljate atribut other_numbers_only atribut
- Več odgovorov s komentarji [ P], če uporabljate atribut other_numbers_only
Posnetki zaslona
Na spodnjih posnetkih zaslona boste morda opazili, da je vejico mogoče uporabiti kot ločilo radiksa.
Prenos
Če želite prenesti zgornji primer, kliknite naslednjo povezavo: ls2_comma_as_radix_separator.lss.
Naključne skupine
Pregled
Ta anketa prikazuje, kako uporabiti atribut random_group.
Če uporabite ta atribut, se vsakič, ko začnete anketo, vrstni red vprašanj naključno določi. Ko se anketa začne, ostane naključni vrstni red nespremenjen, tudi če spremenite jezik.
Posnetki zaslona
Skupaj preverimo spodnji primer. Prvo naključno vprašanje na strani bo Q1, Q4 ali Q7. Drugo naključno izbrano vprašanje na strani bo Q2, Q5 ali Q8.
Tukaj je randomizacija, ustvarjena ob prvem testiranju te ankete.
Ko sem drugič preizkusil anketo, je bila ustvarjena drugačna randomizacija.
Toda, ko sem preklopil na francoščino (brez ponovnega zagona ankete), je vrstni red naključnega izbiranja ostal nedotaknjen.
Prenos
Za prenos zgornjega primera kliknite naslednjo povezavo: Randomization_Group_Test.lss
Naključno postavite eno vprašanje na skupino
Pregled
Ta anketa prikazuje, kako lahko konfigurirate anketo za naključni prikaz enega vprašanja na skupino. V njej je 5 skupin po 6 vprašanj. Na začetku je v skupini 0 zapolnjenih pet skritih vprašanj enačb, imenovanih ask1-ask5. Vsak ima vrednost {floor(rand(1,6.9999))} v besedilnem polju vprašanja, kar pomeni, da bo vsaka od spremenljivk ask1-ask5 imela vrednost med 1 in 6. Nato ima vsako vprašanje v skupini enačba relevantnosti, kot je "ask1==N", kjer je N N-to vprašanje v skupini (torej ima tretje vprašanje v skupini 1 enačbo relevantnosti "ask1==3").
Ta anketa deluje enako dobro v načinih anketa naenkrat, skupina za skupino in vprašanje za vprašanje. Ker je randomizacija nastavljena v prvi skupini in je ta skupina dejansko skrita (ker so vsa vprašanja ask1-ask5 skrita), ostane randomizacija za subjekt enaka; vendar bo imel vsak različen predmet ločeno randomizacijo.
Prikazane lastnosti
- Vrsta vprašanja enačbe
- Funkcije naključnega izbiranja
- Pogojna (če) funkcija
Posnetki zaslona
To je skupina 0, ki uporablja vrsto vprašanja enačbe za izbiro naključnih vrednosti od 1 do 6 za vsako skupino (razen zadnje skupine, ki ima samo 4 vprašanja). Upoštevajte, da funkcija "if()" najprej preveri, ali je ask1 že nastavljen, in če je, uporabi to vrednost. Če vrednost ni nastavljena, potem uporabi naključno vrednost za nastavitev vrednosti ask1.
Ta skupina prikazuje, kako se spremenljivka (ask4) iz skupine Group0 uporablja za nadzor, katero vprašanje je vidno v četrti skupini.
Prenos
Če želite prenesti zgornji primer ankete, kliknite tukaj: Naključna vprašanja v primeru skupinske ankete.
Naključno postavite določeno število vprašanj v skupini (podmnožica vprašanj)
Pregled
Ta anketa prikazuje, kako postaviti naključno podskupino vprašanj v skupini. Na primer, pokažite 5 naključnih vprašanj od 10 vprašanj, ki se nahajajo v skupini.
Anketa ima eno skupino, ki vsebuje 10 vprašanj. Vsem vprašanjem je dodeljeno isto ime naključne skupine. Posledično bodo prikazani v naključnem vrstnem redu ob nalaganju strani. Vsako vprašanje dobi enačbo ustreznosti, tako da je vsota »relevanceStatus« vseh drugih vprašanj v skupini manjša od števila vprašanj, ki jih želite prikazati. Ker je relevanceStatus dodeljen, ko so vprašanja upodobljena, to dejansko sešteje število predhodnih vprašanj.
Torej bi bila v našem primeru 5 od 10 enačba za Q1:
sum(Q2.relevanceStatus, Q3.relevanceStatus, Q4.relevanceStatus, Q5.relevanceStatus, Q6.relevanceStatus, Q7.relevanceStatus, Q8.relevanceStatus, Q9.relevanceStatus, Q10.relevanceStatus) LT 5
Za Q2 bi bilo:
sum(Q1.relevanceStatus, Q3.relevanceStatus, Q4.relevanceStatus, Q5.relevanceStatus, Q6.relevanceStatus, Q7.relevanceStatus, Q8.relevanceStatus, Q9.relevanceStatus, Q10.relevanceStatus) LT 5
In tako naprej...
Prikazane lastnosti
Prenos
Če želite prenesti zgornji primer, kliknite naslednjo povezavo: Naključni primer ankete 5 od 10.
Ocenjevanje seznama izdelkov, ki ga je vnesel uporabnik
Pregled
Spodnji primer prikazuje, kako lahko od uporabnikov zahtevate, da navedejo nabor izdelkov, ki jih zanimajo, nato pa naj ocenijo te izdelke.
Demonstrirane funkcije EM
- 'Prilagajanje odgovorov' – pri ocenjevanju izdelkov oznake izvirajo iz polja za komentar prejšnjega vprašanja z več možnimi odgovori
- 'Prilagajanje lestvic' – številne napredne možnosti vprašanj, kot so naslovi lestvic, lahko biti tudi prilagojena.
Posnetki zaslona
Ta slika prikazuje, da čeprav so bili izbrani samo izdelki 1, 3 in 5, so prikazani samo ti 3 (z uporabo atributa array_filter). Poleg tega so oznake vrstic v drugem vprašanju bodisi številke izdelkov (če v polje za komentarje ni vneseno nič) bodisi vsebina polj za komentarje.
Ta slika prikazuje, kako so določeni prilagojeni odgovori:
Tukaj je Prikaži logično datoteko za to vprašanje, ki nam omogoča, da preverimo, ali pogojna logika deluje po želji (npr. da vidimo, ali obstajajo sintaksne napake):
Na naslednji sliki je prikazana skupina, v kateri določite 5-točkovno ocenjevalno lestvico (možnosti 1-5), naslov lestvice in izdelke, ki jih želite oceniti. Zadnje vprašanje kaže, da je mogoče vsakega od delov matričnega vprašanja prilagoditi:
Naslednja slika prikazuje pogled logične datoteke zadnjega vprašanja. Kot lahko opazite, je mogoče podvprašanja, odgovore in glave lestvic prilagoditi.
Prenos
Če želite prenesti primer ankete od zgoraj, kliknite naslednjo povezavo: Primer ankete o ocenjevanju seznama izdelkov, ki ga je vnesel uporabnik.