Actions

ExpressionScript sample surveys/ro: Difference between revisions

From LimeSurvey Manual

(Created page with "Pentru a descărca exemplul de mai sus, faceți clic pe următorul link: ls2_comma_as_radix_separator.lss.")
(Created page with "Pentru a descărca exemplul de sondaj de mai sus, faceți clic pe următorul link: Media:Rating_User-Entered_List_of_Products_Survey.zip|Exemplu de sondaj de evaluare a list...")
 
(44 intermediate revisions by the same user not shown)
Line 380: Line 380:




=Randomization Groups=
=Grupuri de randomizare=




==Overview==
==Prezentare generală==




This survey demonstrates how to make use of the '''random_group''' attribute.
Acest sondaj demonstrează cum să utilizați atributul „grup_aleatoriu”.


If this attribute is used, each time you start the survey, the question order is randomized. However, once the survey is started, the randomization order remains fixed, even if you change languages.
Dacă se folosește acest atribut, de fiecare dată când începeți sondajul, ordinea întrebărilor este randomizată. Cu toate acestea, odată ce sondajul este început, ordinea de randomizare rămâne fixă, chiar dacă schimbați limbile.




==Screenshots==
==Capturi de ecran==




Let's check together the below example. The first random question on the page will either be Q1 , Q4, or Q7. The second randomized question on the page will either be Q2, Q5, or Q8.
Să verificăm împreună exemplul de mai jos. Prima întrebare aleatorie de pe pagină va fi Q1 , Q4 sau Q7. A doua întrebare randomizată de pe pagină va fi fie Q2, Q5, fie Q8.




Line 401: Line 401:




Here is the randomization generated the first time I tested this survey.
Iată randomizarea generată prima dată când am testat acest sondaj.




Line 407: Line 407:




A different randomization was generated the second time I tested the survey.
O randomizare diferită a fost generată a doua oară când am testat sondajul.




Line 413: Line 413:




But, when I switched to French (without re-starting the survey), the randomization order remained intact.
Însă, când am trecut la franceză (fără a reîncepe sondajul), ordinea de randomizare a rămas intactă.




Line 419: Line 419:




==Download==
==Descărcare==




To download the above example, click on the following link: [[Media:Randomization_Group_Test.lss|Randomization_Group_Test.lss]]
Pentru a descărca exemplul de mai sus, faceți clic pe următorul link: [[Media:Randomization_Group_Test.lss|Randomization_Group_Test.lss]]




=Randomly Ask One Question Per Group=
=Puneți aleatoriu o întrebare per grup=




==Overview==
==Prezentare generală==




This survey shows how you can configure a survey to randomly display one question per group. In it, there are 5 groups of 6 questions each. At the outset, in Group 0, five hidden Equation questions, called ask1-ask5, are populated. Each one has the value of {floor(rand(1,6.9999))} in the question text field, which means that the variables ask1-ask5 will each have a value between 1 and 6. Then, each question in the group has a relevance equation like "ask1==N" where N is the Nth question in the group (so the third question in group 1 has the relevance equation  "ask1==3").
Acest sondaj arată cum puteți configura un sondaj pentru a afișa aleatoriu o întrebare per grup. În el, există 5 grupuri a câte 6 întrebări fiecare. La început, în Grupul 0, sunt populate cinci întrebări de ecuație ascunse, numite ask1-ask5. Fiecare are valoarea {floor(rand(1,6.9999))} în câmpul text al întrebării, ceea ce înseamnă că variabilele ask1-ask5 vor avea fiecare o valoare între 1 și 6. Apoi, fiecare întrebare din grup are o ecuație de relevanță ca „ask1==N” unde N este a N-a întrebare din grup (deci a treia întrebare din grupul 1 are ecuația de relevanță „ask1==3”).


This survey works equally well in survey-at-a-time, group-by-group, and question-by-question modes. Since the randomization is set in the first group, and that group is effectively hidden (since all of the ask1-ask5 questions are hidden), the randomization stays the same for the subject; but each different subject will have a distinct randomization.
Acest sondaj funcționează la fel de bine în modurile de anchetă la un moment dat, grup cu grup și întrebare cu întrebare. Deoarece randomizarea este setată în primul grup și acel grup este efectiv ascuns (din moment ce toate întrebările ask1-ask5 sunt ascunse), randomizarea rămâne aceeași pentru subiect; dar fiecare subiect diferit va avea o randomizare distinctă.




==Features Demonstrated==
==Caracteristici demonstrate==




#[[Question type - Equation|Equation question type]]
#[[Tipul întrebării - Ecuație|Tipul întrebării ecuației]]
#Randomization functions
#Funcții de randomizare
#Conditional (if) function
#Funcție condiționată (dacă)




==Screenshots==
==Capturi de ecran==




This is Group0, which uses the [[Question type - Equation|Equation question type]] to select random values from 1 to 6 for each group (except the last group, which has only 4 questions). Note that the "if()" function first checks whether ask1 has already been set, and if so, uses that value. If the value hasn't been set, then it uses a random value to set the value of ask1.
Acesta este Grupul 0, care folosește [[Tipul de întrebare - Ecuație|Tipul de întrebare de ecuație]] pentru a selecta valori aleatorii de la 1 la 6 pentru fiecare grup (cu excepția ultimului grup, care are doar 4 întrebări). Rețineți că funcția „if()” verifică mai întâi dacă ask1 a fost deja setat și, dacă da, folosește acea valoare. Dacă valoarea nu a fost setată, atunci folosește o valoare aleatorie pentru a seta valoarea ask1.




Line 453: Line 453:




This Group shows how the variable (ask4) from Group0 is used to control which question is visible within the fourth group.
Acest grup arată modul în care variabila (ask4) din Group0 este utilizată pentru a controla ce întrebare este vizibilă în al patrulea grup.




Line 459: Line 459:




==Download==
==Descărcare==




To download the above survey example, click here: [[Media:limesurvey_survey_55164.lss|Random questions within a group survey example]].
Pentru a descărca exemplul de sondaj de mai sus, faceți clic aici: [[Media:limesurvey_survey_55164.lss|Întrebări aleatorii într-un exemplu de sondaj de grup]].




=Randomly Ask A Specific Number Of Questions In A Group (a subset of the questions)=
=Pune la întâmplare un număr specific de întrebări într-un grup (un subset de întrebări)=




{{Alert|This applies only to all random questions from one group and only if the [[General_settings#General_settings_panel|Group by group or All in one]] format is used.}}
{{Alertă|Acest lucru se aplică numai tuturor întrebărilor aleatorii dintr-un grup și numai dacă este utilizat formatul [[General_settings#General_settings_panel|Grup după grup sau All in one]].}}




==Overview==
==Prezentare generală==




This survey shows how to ask a random subset of questions in a group. For example, show 5 random questions out of 10 questions located within a group.  
Acest sondaj arată cum să pui un subset aleatoriu de întrebări într-un grup. De exemplu, afișați 5 întrebări aleatorii din 10 întrebări situate într-un grup.  


The survey has one group containing 10 questions. All questions are assigned the same [[QS:Random_group|randomization group name]]. As a result, they will be displayed in a random order on page load. Each question is given a relevance equation that the sum of the "[[ExpressionScript - Presentation#Access to Variables|relevanceStatus]]" of all other questions in the group is less than the number of questions you want to show. Since [[ExpressionScript - Presentation#Access to Variables|relevanceStatus]] is assigned as questions are rendered, this effectively totals the number of preceding questions.
Sondajul are un grup care conține 10 întrebări. Tuturor întrebărilor li se atribuie același [[QS:Random_group|nume de grup de randomizare]]. Ca rezultat, acestea vor fi afișate într-o ordine aleatorie la încărcarea paginii. Fiecărei întrebări i se dă o ecuație de relevanță pe care suma „[[ExpressionScript - Presentation#Access to Variables|relevanceStatus]]” a tuturor celorlalte întrebări din grup este mai mică decât numărul de întrebări pe care doriți să le afișați. Deoarece [[ExpressionScript - Presentation#Access to Variables|relevanceStatus]] este atribuit pe măsură ce întrebările sunt randate, aceasta totalizează efectiv numărul de întrebări precedente.


So, in our 5 out of 10 example, the equation for Q1 would be:
Deci, în exemplul nostru 5 din 10, ecuația pentru Q1 ar fi:


<syntaxhighlight lang="php">sum(Q2.relevanceStatus, Q3.relevanceStatus, Q4.relevanceStatus, Q5.relevanceStatus, Q6.relevanceStatus, Q7.relevanceStatus, Q8.relevanceStatus, Q9.relevanceStatus, Q10.relevanceStatus) LT 5</syntaxhighlight>
<syntaxhighlight lang="php">sum(Q2.relevanceStatus, Q3.relevanceStatus, Q4.relevanceStatus, Q5.relevanceStatus, Q6.relevanceStatus, Q7.relevanceStatus, Q8.relevanceStatus, Q9.relevanceStatus, Q10.relevanceStatus) LT 5</syntaxhighlight>


For Q2, it would be:
Pentru Q2, ar fi:


<syntaxhighlight lang="php">sum(Q1.relevanceStatus, Q3.relevanceStatus, Q4.relevanceStatus, Q5.relevanceStatus, Q6.relevanceStatus, Q7.relevanceStatus, Q8.relevanceStatus, Q9.relevanceStatus, Q10.relevanceStatus) LT 5</syntaxhighlight>
<syntaxhighlight lang="php">sum(Q1.relevanceStatus, Q3.relevanceStatus, Q4.relevanceStatus, Q5.relevanceStatus, Q6.relevanceStatus, Q7.relevanceStatus, Q8.relevanceStatus, Q9.relevanceStatus, Q10.relevanceStatus) LT 5</syntaxhighlight>


And so on...
Și așa mai departe...




==Features Demonstrated==
==Caracteristici demonstrate==




#[[ExpressionScript - Presentation#Access to variables|relevanceStatus variable]]
#[[ExpressionScript - Prezentare#Acces la variabile|variabilă de stare relevanță]]
#[[QS:Random group|Randomizing]]
#[[QS:Grup aleatoriu|Randomizare]]


==Download==
==Descărcare==




To download the above example, click on the following link: [[Media:Random_5_out_of_10.lss|Random 5 out of 10 survey example]].
Pentru a descărca exemplul de mai sus, faceți clic pe următorul link: [[Media:Random_5_out_of_10.lss|Exemplu de sondaj aleatoriu 5 din 10]].


=Rating User-Entered List of Products=
=Evaluarea listei de produse introduse de utilizator=




==Overview==
==Prezentare generală==




The below example shows how you can ask users to list a set of products that interest them, and then have them rate those products.
Exemplul de mai jos arată cum le puteți cere utilizatorilor să enumere un set de produse care îi interesează și apoi să le cereți să evalueze acele produse.




==ES Features Demonstrated==
== Caracteristicile ES demonstrate==




#'''Tailoring answers''' - when rating products, the labels come from the comment field of the preceding multiple choice question
#'''Adaptarea răspunsurilor''' - atunci când evaluează produse, etichetele provin din câmpul de comentarii al întrebării anterioare cu răspunsuri multiple
#'''Tailoring scales''' - many advanced questions options, like scale headings, can also be tailored.
#'''Scale de personalizare''' - multe opțiuni avansate de întrebări, cum ar fi titlurile scalei, pot să fie de asemenea croită.




==Screenshots==
==Capturi de ecran==




This image shows that since only products 1,3, and 5 were selected, only those 3 are displayed (using the [[QS:Array_filter|array_filter]] attribute). Moreover, the row labels in the second question are either the product numbers (if nothing is entered into the comment field) or the contents of the comment fields.
Această imagine arată că, deoarece numai produsele 1, 3 și 5 au fost selectate, sunt afișate doar acele 3 (folosind atributul [[QS:Array_filter|array_filter]]). Mai mult, etichetele rândului din a doua întrebare sunt fie numerele de produs (dacă nu este introdus nimic în câmpul de comentarii), fie conținutul câmpurilor de comentarii.




Line 525: Line 525:




This image shows how the tailored answers are specified:
Această imagine arată cum sunt specificate răspunsurile personalizate:




Line 531: Line 531:




Here is the Show Logic File for that question, which lets us verify that the conditional logic works as desired (e.g., to see whether there are any syntax errors):
Iată Afișați fișierul logic pentru acea întrebare, care ne permite să verificăm dacă logica condiționată funcționează așa cum se dorește (de exemplu, pentru a vedea dacă există erori de sintaxă):




Line 537: Line 537:




The next image shows a group in which you specify a 5 point rating scale (Options 1-5), the title of the scale, and the products you want to rate. The final question shows that each of the parts of the array question can be tailored:
Următoarea imagine arată un grup în care specificați o scară de evaluare de 5 puncte (Opțiuni 1-5), titlul scalei și produsele pe care doriți să le evaluați. Întrebarea finală arată că fiecare dintre părțile întrebării matrice poate fi adaptată:




Line 543: Line 543:




The next image shows the logic file view of the last question. As you can observe, the subquestions, answers, and scale headers can be tailored.
Următoarea imagine arată vizualizarea fișierului logic al ultimei întrebări. După cum puteți observa, subîntrebările, răspunsurile și anteturile scalei pot fi adaptate.




<center>[[File:mcc_filter5.jpg]]</center>
<center>[[File:mcc_filter5.jpg]]</center>


==Download==
==Descărcare==




To download the survey example from above, click on the following link: [[Media:Rating_User-Entered_List_of_Products_Survey.zip|Rating user-entered list of products survey example]].
Pentru a descărca exemplul de sondaj de mai sus, faceți clic pe următorul link: [[Media:Rating_User-Entered_List_of_Products_Survey.zip|Exemplu de sondaj de evaluare a listei de produse introduse de utilizator]].

Latest revision as of 08:02, 3 November 2023


Introducere

Cel mai bun mod de a învăța cum să utilizați ExpressionScript este să vă jucați cu exemple de lucru și să le modificați în funcție de nevoile dvs.

Puteți găsi mai jos un set de sondaje eșantion pentru a demonstra (și a testa) cum poate fi utilizat EM pentru a vă îmbunătăți sondajul. Aceste sondaje pot fi găsite în folderul /docs/demosurveys al distribuției.


Relevanță, Croitorie și Ecuații

Prezentare generală

Următorul exemplu calculează IMC (indicele de masă corporală) al fiecărui respondent. Vedeți mai jos caracteristicile care sunt demonstrate în acest exemplu.

Caracteristicile EM demonstrate

  1. Relevanță - suport pentru logica condiționată puternică;
  2. Piping / Tailoring - oferă posibilitatea de a adapta sau adapta răspunsurile și metadatele întrebărilor;
  3. Dynamic Tailoring - rețineți că rapoartele sunt modificate pe pagină pe măsură ce răspundeți la întrebări.
  4. Micro-Tailoring - adaptare condiționată în propoziții și rapoarte folosind instrucțiuni if()
  5. Ecuații - un nou tip de întrebare care vă permite să faceți calcule și să stocați rezultatele în baza de date, chiar dacă calculul este ascuns
  6. Validare condiționată - validare criteriile, cum ar fi valoarea minimă admisă, pot fi condiționate - de exemplu, bazate pe ecuații.


Capturi de ecran

Acest exemplu calculează indicele de masă corporală, un calcul al greutății și înălțimii dvs. pentru a determina dacă sunteți subponderal, greutate normală, supraponderală sau obez. Rețineți că inițial, tot ce vedeți sunt cele patru întrebări obligatorii:



După ce ați introdus informațiile (și puteți alege dacă să utilizați unități metrice sau nemetrice), vedeți un raport personalizat care rezumă ceea ce ați introdus, indicându-vă starea greutății:



Iată un exemplu diferit, folosind unități nemetrice pentru a arăta cum se modifică dinamic rezultatul:



Există Întrebări de tip ecuație ascunse la nivel intern care convertesc datele în valori (dacă este necesar), stochând înălțimea, greutatea, IMC și starea greutății în baza de date fără a fi nevoie de JavaScript personalizat. .

Puteți vedea în următorul set de exemple cum puteți utiliza funcții matematice și alte funcții în cadrul rapoartelor personalizate. Așa arată pagina înainte de a introduce date. Există o logică condiționată pentru a afișa celulele goale dacă nu sunt introduse date (sau non-numerice), în loc să afișeze „NaN” sau „Împărțire la zero”.



Pe măsură ce sunt introduse numere, raportul de pe pagină se modifică pentru a arăta calculul efectuat și rezultatul acestuia.



Există multe alte exemple în acest sondaj eșantion. De exemplu, captura de ecran de mai jos arată unul dintre zecile de moduri în care puteți completa pagina Relevanță dinamică. După cum notează textul de ajutor, încercați vârste diferite și mai ales combinații ilogice de răspunsuri pentru a vedea mesajele amuzante generate în partea de jos. De asemenea, rețineți că, dacă spuneți că aveți mai mult de un copil, mesajul va spune „Sper că vă place să vă jucați cu copiii tăi X”, în loc să spuneți „Sper că vă place să vă jucați cu copilul dumneavoastră”. Aceasta arată cum puteți micro-personaliza cu ușurință propozițiile pentru a le face să se potrivească cu sexul și/sau numărul subiecților dvs. Puteți chiar să conjugați cu ușurință verbele și să refuzați substantivele în funcție de gen și număr.



Descărcare

Pentru a accesa eșantionul sondajului, vă rugăm să faceți clic pe următorul link: LS3_em_tailoring.zip.

Eșantion de recensământ

Prezentare generală

Acesta este un exemplu de recensământ care întreabă câți oameni sunt în gospodăria dvs.

Acesta demonstrează modul în care relevanța la nivel de grup poate facilita implementarea unei „bucle” de întrebări. După ce am creat grupul pentru persoana 1, am exportat grupul. Deoarece am folosit nume de variabile qcode precum p1_name în loc de codul SGQA, aș putea folosi un editor de text pentru a edita și reimporta rapid grupul de mai multe ori (de exemplu, a durat aproximativ 10 secunde pentru a edita și reimporta fiecare grup care se repetă, asigurând că toate variabilele aveau nume unice de variabile și că logica la nivel de grup era corectă).

Puteți, de asemenea, să utilizați funcția Copiați întrebarea, dar nu va fi la fel de rapidă ca opțiunea sugerată mai sus.

Aceasta arată, de asemenea, cum puteți împiedica apariția mesajului Terminat până când sondajul este cu adevărat terminat (de exemplu, când toate grupurile necesare sunt finalizate).


Caracteristicile EM demonstrate

  1. Relevanță la nivel de grup - Grupurile de urmărire (Persoana 1-5) apar numai pentru numărul de concubinatori specificat;
  2. Croitorie - Raportul final rezumă datele demografice pentru fiecare conviețuitor;
  3. Afișare progresivă a întrebării - Fie în modul de grup sau în modul all-in-one, întrebările ulterioare apar numai de îndată ce se răspunde la cele precedente.


Capturi de ecran

Sondajul generează un raport personalizat care arată datele demografice ale numărului specificat de locuitori:



Dacă treceți la modul întrebare la un moment dat, vedeți că indexul adaptează întrebările. Deoarece utilizatorul a spus că persoana este o femeie, acesta întreabă „Cum o cheamă”. Și din moment ce am răspuns „Maria”, următoarea întrebare spune „Câți ani are Maria”?



Descărcare

Pentru a descărca eșantionul de sondaj, faceți clic aici: LS3_group_relevance.zip.


Filtre de matrice în cascadă

Prezentare generală

Acest sondaj se bazează pe proiectarea unui sondaj oferit de Joy Lane Research, LLC.


Capturi de ecran

În cele ce urmează, rețineți că:

  • Q02 arată doar setul de produse verificate în Q01 (prin folosirea array_filter)
  • Q02 arată și „Un alt produs”, textul introdus în câmpul „Alte electronice” în Q01
  • Q04 afișează numai produsele din Q02 care au fost verificate (deci filtrul de matrice cascadă)
  • Q05 arată numai produsele din Q02 care nu au fost verificate în Q02 (folosind un array_filter_exclude în cascadă)


Fișier:cascading_array_filter.jpg


Fișier:cascading_array_filter2.jpg


Descărcare

Faceți clic pe următorul link pentru a descărca exemplul de mai sus: Exemplu de sondaj LS2_cascading_array_filter.


Conducte/Adaptare folosind toate tipurile și atributele de întrebări

Prezentare generală

Dacă sunteți confuz cu privire la cum să vă denumiți variabilele (SGQA vs Qcodes), nu sunteți singur. Deși documentația principală descrie cum să compuneți nume de variabile Qcode, nimic nu mai depășește să văd într-o demonstrație de lucru. Acest sondaj arată cum puteți accesa atributele întrebărilor și răspunsurile folosind ExpressionScript.


Template:Notă


Conținut

  • Exemple de fiecare tip de întrebare
  • Toate tipurile de întrebări care pot folosi „altele” sunt incluse, astfel încât să puteți vedea cum afectează aceasta denumirea variabilelor
  • Valori implicite pentru toate tipurile de întrebări care acceptă valorile implicite
  • Credire - Rapoarte pe și în afara paginii care arată toate cele 16 sufixe de notație cu puncte EM disponibile.
  • Aceste rapoarte arată toate datele introduse curent (deci vă arată cum ați putea genera propriile rapoarte imprimabile pentru utilizatori în locul tipăririi ecran de răspunsuri)
  • Denumirea corectă Qcode și SGQA a tuturor variabilelor


Capturi de ecran

Acesta este un sondaj uriaș, așa că am ales să nu includem capturi de ecran. În schimb, vă rugăm să descărcați și să jucați cu el.


Descărcare

Faceți clic pe următorul link pentru a descărca sondajul: LS3_EM_question_attributes.lss

Validare tradițională, re-vizuită

Prezentare generală

Aceasta demonstrează toate tipurile de validare care utilizează expresii și modul în care acestea afectează fiecare dintre tipurile de întrebări care acceptă validarea. În multe cazuri, sfaturile de validare încep ascunse și apar doar dacă o întrebare nu îndeplinește criteriile de validare (disparând astfel și odată ce întrebarea trece de criteriile de validare).


Tipuri de validare demonstrate

  1. min_num_value_n - valoarea minimă pentru un răspuns
  2. max_num_value_n - valoarea maximă pentru un răspuns
  3. min_answers - minim numărul de răspunsuri necesar
  4. max_answers numărul maxim de răspunsuri permis
  5. multiflexible_min - valoarea minimă permisă pentru un răspuns (pentru tipul de întrebare numere multiflexi)! N!#multiflexible_max - valoarea maximă permisă pentru un răspuns (pentru tipul de întrebare cu numere multiflexi)
  6. min_num_value - suma minimă permisă pentru toate răspunsurile la întrebare
  7. max_num_value - suma maximă permisă pentru toate răspunsurile la întrebare
  8. equals_num_value - suma pentru toate răspunsurile la întrebare trebuie să fie egală cu această valoare!N !#validation - aceasta este validarea expresiei regulate pentru întrebare - se poate aplica celulelor individuale


Capturi de ecran

Folosind stiluri CSS noi, fiecare tip de validare afișează un sfat separat. Dacă sunt afișate, pot fi ascunse prin opțiunea hide_tip. Opțiunea implicită este să le afișați cu font roșu dacă întrebarea nu respectă criteriile de validare și verde dacă le trece:



Un utilizator nu poate trimite o pagină cu erori de validare. El va fi avertizat imediat dacă a introdus informații greșite:



Validarea poate fi aplicată celulelor individuale dintr-o matrice, cum ar fi în acest exemplu în care validările expresiilor regulate asigură că fiecare intrare este un număr de telefon din SUA format corespunzător, inclusiv prefixul zonal.



Descărcare

Pentru a descărca exemplul de mai sus, faceți clic pe următorul link: LS3_Validation_tests.zip.


Ecuații de validare

Prezentare generală

Uneori aveți nevoie de validare personalizată care nu poate fi realizată folosind criteriile tradiționale min/max. Pentru aceasta, va trebui să utilizați opțiunile em_validation_q și em_validation_sq care vă permit să construiți ecuații de validare complexe la nivel de întrebare și, respectiv, subîntrebare.


Template:Notă


Caracteristicile EM demonstrate

  1. em_validation_q - aceasta este o ecuație care determină dacă întreaga întrebare este validă
  2. em_validation_q_tip - acesta este mesajul care arată dacă întrebarea nu respectă criteriile em_validation_q
  3. em_validation_sq - aceasta este ecuația care determină dacă fiecare subîntrebare (celulă matrice) este validă
  4. em_validation_sq_tip - acesta este mesajul care trebuie afișat dacă există a subîntrebărilor este nevalidă.

În general, când se folosește em_validation_sq, dacă vreo celulă este invalidă, culoarea de fundal pentru acea celulă devine roșie pentru a indica că există o eroare.


Capturi de ecran


Această întrebare vă asigură că introduceți vârstele copiilor dvs. în ordine descrescătoare prin aplicarea acestei ecuații de validare:

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





În exemplul de mai jos, validarea asigură că nu se răspunde la mai mult de 3 întrebări pe un rând dat prin aplicarea acestei ecuații de validare:

(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_3,_ Test_C_3,_ Test_C_3,_ Test_C_3) <= 3)

De asemenea, puteți scrie acest lucru după cum urmează, LimeSurvey transformându-l automat în timpul execuției în expresia de mai sus.

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



Descărcare

Pentru a descărca eșantionul de sondaj utilizat în exemplele de mai sus, faceți clic pe următorul link: ls2_test_em_sq_validation.lss.


Relevanța subîntrebării

Prezentare generală

Aceasta arată cum pot interacționa array_filter și criteriile de validare. Pentru validările care se aplică sumelor, sunt luate în considerare numai valorile relevante (vizibile).


Caracteristicile EM demonstrate

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

De asemenea, arată raportarea dinamică a numărului de întrebări la care s-a răspuns la întrebările de bază.


Capturi de ecran

Modificarea numărului de rânduri vizibile modifică dinamic suma. Marcarea unei subîntrebări ca fiind irelevantă nu îi clarifică valoarea. Mai degrabă, dacă este irelevant, valorile sale nu contribuie la nicio ecuație.



Observați ce se întâmplă atunci când verificăm „A cincea subîntrebare” pentru prima întrebare „’’„Ce rânduri ar trebui să apară mai jos”’’’. Rețineți că suma pentru a doua întrebare „Introduceți câteva numere” este acum 5. Chiar dacă subîntrebarea 5 pentru acea întrebare are încă valoarea 14 (de exemplu, dacă debifați a cincea subîntrebare, veți vedea din nou valoarea 14) , acea valoare nu contribuie la sumă, deoarece în prezent este irelevantă. Toate datele irelevante sunt șterse (nule în baza de date) la trimitere, dar rămân disponibile pe pagină în cazul în care utilizatorii doresc sau trebuie să se răzgândească cu privire la răspunsuri.



Descărcare

Pentru a descărca exemplul nostru, faceți clic aici: ls2_subquestion_relevance.lss.


Folosirea virgulei ca separator de radice (punct zecimal)

Prezentare generală

ExpressionScript asigură că numai numere valide pot fi introduse în câmpurile numerice. Dacă introduceți un număr nevalid, veți fi avertizat că ceva nu este în regulă (de exemplu, în cazul temei fructate, întreaga întrebare este „roșu-roșu”).

Rețineți că valorile numerice sunt întotdeauna convertite utilizând un punct ca separator de bază în baza de date. În acest fel, analizele statistice vor funcționa corespunzător.

Pentru a schimba separatorul radix, accesați opțiunile Text elements situate sub fila Settings și căutați funcționalitatea mark zecimal.


Template:Notă


Tipuri de întrebări folosind Radix Separator

  1. Introducere numerică [ N]
  2. Introducere numerică multiplă [ K]
  3. Matrice (Numere) [ :]
  4. Matrice (Texte) [ ;], când utilizați atributul numbers_only
  5. List (radio) [ L], când utilizați atributul other_numbers_only
  6. Short free text [ S], când utilizați atributul numbers_only
  7. Multiple short text [ Q], când utilizați atributul numbers_only
  8. Multiple choice [ M], când utilizați atributul other_numbers_only
  9. Multiple choice with comments [ P], când utilizați atributul other_numbers_only


Capturi de ecran

Puteți observa în capturile de ecran de mai jos că virgula poate fi folosită ca separator de bază.



Descărcare

Pentru a descărca exemplul de mai sus, faceți clic pe următorul link: ls2_comma_as_radix_separator.lss.


Grupuri de randomizare

Prezentare generală

Acest sondaj demonstrează cum să utilizați atributul „grup_aleatoriu”.

Dacă se folosește acest atribut, de fiecare dată când începeți sondajul, ordinea întrebărilor este randomizată. Cu toate acestea, odată ce sondajul este început, ordinea de randomizare rămâne fixă, chiar dacă schimbați limbile.


Capturi de ecran

Să verificăm împreună exemplul de mai jos. Prima întrebare aleatorie de pe pagină va fi Q1 , Q4 sau Q7. A doua întrebare randomizată de pe pagină va fi fie Q2, Q5, fie Q8.



Iată randomizarea generată prima dată când am testat acest sondaj.



O randomizare diferită a fost generată a doua oară când am testat sondajul.



Însă, când am trecut la franceză (fără a reîncepe sondajul), ordinea de randomizare a rămas intactă.



Descărcare

Pentru a descărca exemplul de mai sus, faceți clic pe următorul link: Randomization_Group_Test.lss


Puneți aleatoriu o întrebare per grup

Prezentare generală

Acest sondaj arată cum puteți configura un sondaj pentru a afișa aleatoriu o întrebare per grup. În el, există 5 grupuri a câte 6 întrebări fiecare. La început, în Grupul 0, sunt populate cinci întrebări de ecuație ascunse, numite ask1-ask5. Fiecare are valoarea {floor(rand(1,6.9999))} în câmpul text al întrebării, ceea ce înseamnă că variabilele ask1-ask5 vor avea fiecare o valoare între 1 și 6. Apoi, fiecare întrebare din grup are o ecuație de relevanță ca „ask1==N” unde N este a N-a întrebare din grup (deci a treia întrebare din grupul 1 are ecuația de relevanță „ask1==3”).

Acest sondaj funcționează la fel de bine în modurile de anchetă la un moment dat, grup cu grup și întrebare cu întrebare. Deoarece randomizarea este setată în primul grup și acel grup este efectiv ascuns (din moment ce toate întrebările ask1-ask5 sunt ascunse), randomizarea rămâne aceeași pentru subiect; dar fiecare subiect diferit va avea o randomizare distinctă.


Caracteristici demonstrate

  1. Tipul întrebării ecuației
  2. Funcții de randomizare
  3. Funcție condiționată (dacă)


Capturi de ecran

Acesta este Grupul 0, care folosește Tipul de întrebare de ecuație pentru a selecta valori aleatorii de la 1 la 6 pentru fiecare grup (cu excepția ultimului grup, care are doar 4 întrebări). Rețineți că funcția „if()” verifică mai întâi dacă ask1 a fost deja setat și, dacă da, folosește acea valoare. Dacă valoarea nu a fost setată, atunci folosește o valoare aleatorie pentru a seta valoarea ask1.



Acest grup arată modul în care variabila (ask4) din Group0 este utilizată pentru a controla ce întrebare este vizibilă în al patrulea grup.



Descărcare

Pentru a descărca exemplul de sondaj de mai sus, faceți clic aici: Întrebări aleatorii într-un exemplu de sondaj de grup.


Pune la întâmplare un număr specific de întrebări într-un grup (un subset de întrebări)

Template:Alertă


Prezentare generală

Acest sondaj arată cum să pui un subset aleatoriu de întrebări într-un grup. De exemplu, afișați 5 întrebări aleatorii din 10 întrebări situate într-un grup.

Sondajul are un grup care conține 10 întrebări. Tuturor întrebărilor li se atribuie același nume de grup de randomizare. Ca rezultat, acestea vor fi afișate într-o ordine aleatorie la încărcarea paginii. Fiecărei întrebări i se dă o ecuație de relevanță pe care suma „relevanceStatus” a tuturor celorlalte întrebări din grup este mai mică decât numărul de întrebări pe care doriți să le afișați. Deoarece relevanceStatus este atribuit pe măsură ce întrebările sunt randate, aceasta totalizează efectiv numărul de întrebări precedente.

Deci, în exemplul nostru 5 din 10, ecuația pentru Q1 ar fi:

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

Pentru Q2, ar fi:

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

Și așa mai departe...


Caracteristici demonstrate

  1. variabilă de stare relevanță
  2. Randomizare

Descărcare

Pentru a descărca exemplul de mai sus, faceți clic pe următorul link: Exemplu de sondaj aleatoriu 5 din 10.

Evaluarea listei de produse introduse de utilizator

Prezentare generală

Exemplul de mai jos arată cum le puteți cere utilizatorilor să enumere un set de produse care îi interesează și apoi să le cereți să evalueze acele produse.


Caracteristicile ES demonstrate

  1. Adaptarea răspunsurilor - atunci când evaluează produse, etichetele provin din câmpul de comentarii al întrebării anterioare cu răspunsuri multiple
  2. Scale de personalizare - multe opțiuni avansate de întrebări, cum ar fi titlurile scalei, pot să fie de asemenea croită.


Capturi de ecran

Această imagine arată că, deoarece numai produsele 1, 3 și 5 au fost selectate, sunt afișate doar acele 3 (folosind atributul array_filter). Mai mult, etichetele rândului din a doua întrebare sunt fie numerele de produs (dacă nu este introdus nimic în câmpul de comentarii), fie conținutul câmpurilor de comentarii.



Această imagine arată cum sunt specificate răspunsurile personalizate:



Iată Afișați fișierul logic pentru acea întrebare, care ne permite să verificăm dacă logica condiționată funcționează așa cum se dorește (de exemplu, pentru a vedea dacă există erori de sintaxă):



Următoarea imagine arată un grup în care specificați o scară de evaluare de 5 puncte (Opțiuni 1-5), titlul scalei și produsele pe care doriți să le evaluați. Întrebarea finală arată că fiecare dintre părțile întrebării matrice poate fi adaptată:



Următoarea imagine arată vizualizarea fișierului logic al ultimei întrebări. După cum puteți observa, subîntrebările, răspunsurile și anteturile scalei pot fi adaptate.


Descărcare

Pentru a descărca exemplul de sondaj de mai sus, faceți clic pe următorul link: Exemplu de sondaj de evaluare a listei de produse introduse de utilizator.