Actions

ExpressionScript How-tos/pl: Difference between revisions

From LimeSurvey Manual

(Created page with "Jednak atrybut .NAOK wpływa tylko na to, czy zmienne są przekazywane do EM. Jeśli respondentka początkowo twierdzi, że ma 3 dzieci i podaje wiek każdego z nich, potem zm...")
(Created page with "Kiedy faktycznie edytujesz pytanie, pytanie wygląda następująco:")
 
(29 intermediate revisions by the same user not shown)
Line 213: Line 213:




Each separate Expression is color coded with a tan background. As you can see, there are three separate Expressions here. The last one contains a message that is conditionally shown only if the person has more than one child.
Każde oddzielne wyrażenie jest oznaczone kolorem i brązowym tłem. Jak widać, są tu trzy osobne wyrażenia. Ostatnia zawiera komunikat, który wyświetla się warunkowo tylko wtedy, gdy dana osoba ma więcej niż jedno dziecko.




Line 219: Line 219:




Now, here are screenshots of the survey in action.
Oto zrzuty ekranu przedstawiające ankietę w akcji.


When you first visit the page, you see this. Note that is says "You have 0 '''children'''" instead of "You have 0 '''child'''".
Kiedy po raz pierwszy odwiedzasz tę stronę, widzisz to. Zauważ, że jest napisane „Masz 0 dzieci” zamiast „Masz 0 dzieci”.




Line 227: Line 227:




If I change the value for number of children to 1, the display instantly changes to this, even though it is on the same page:
Jeśli zmienię wartość liczby dzieci na 1, wyświetlacz natychmiast zmieni się na następujący, mimo że znajduje się na tej samej stronie:




Line 233: Line 233:




Now notice that the grammar is correct: "You have 1 '''child'''".
Teraz zauważ, że gramatyka jest poprawna: „Masz 1 „dziecko””.


Now I change the value for number of children to 3, and the display instantly changes to this.
Teraz zmieniam wartość liczby dzieci na 3, a wyświetlacz natychmiast się na nią zmienia.


Notice that you now see the conditional message at the bottom:  "The sum of ages of your first 3 kids is 0.".
Zwróć uwagę, że na dole widzisz komunikat warunkowy: „Suma wieku twoich pierwszych 3 dzieci wynosi 0”.




Line 243: Line 243:




Now I'll enter ages for my imaginary children, and I get this display, summing up their ages:
Teraz wprowadzę wiek moich wyimaginowanych dzieci i otrzymuję następujący ekran podsumowujący ich wiek:




Line 249: Line 249:




Again, the score and display updates instantly as I enter the values, so you can use this to show a running total of an Assessment Score.
Ponownie, wynik i wyświetlacz aktualizują się natychmiast po wprowadzeniu wartości, więc możesz użyć tego do wyświetlenia bieżącej sumy Wyniku Oceny.




Now, I change the value for the number of children to 2. The display has changed to this:
Teraz zmieniam wartość liczby dzieci na 2. Wyświetlacz zmienił się na następujący:




Line 258: Line 258:




Notice that although I had entered a value of 5.5 for the third child, the report now only sums the values of my first 2 children.
Zauważ, że chociaż dla trzeciego dziecka wprowadziłem wartość 5,5, w raporcie sumowane są teraz tylko wartości moich pierwszych dwojga dzieci.


The reason for this is that the 3rd value is now irrelevant, and irrelevant values are actively ignored by EM.
Powodem tego jest to, że trzecia wartość jest teraz nieistotna, a nieistotne wartości są aktywnie ignorowane przez EM.


If I were to change the number of kids back to 3, I would see the value of 5.5 I entered again. So, I don't lose any information I enter on the page.
Gdybym miał ponownie zmienić liczbę dzieci na 3, ponownie zobaczyłbym wprowadzoną wartość 5,5. Dzięki temu nie tracę żadnych informacji, które wprowadzam na stronie.


However, if I navigate to the Next or Previous page, all irrelevant values will be NULLed out in the session and in the database. So, if I were to keep the value at 2, go to the next page, and then come back and state that I actually have 3 kids, I would no longer see the age of 5.5.
Jeśli jednak przejdę do następnej lub poprzedniej strony, wszystkie nieistotne wartości zostaną usunięte w sesji i bazie danych. Tak więc, jeśli miałbym utrzymać wartość na poziomie 2, przejść do następnej strony, a następnie wrócić i stwierdzić, że tak naprawdę mam 3 dzieci, nie widziałbym już wieku 5,5.




==Enter data and see a dynamically changing report of what was entered on the same page==
==Wprowadź dane i zobacz dynamicznie zmieniający się raport tego, co zostało wprowadzone na tej samej stronie==




This example presents the Tailoring process within LimeSurvey.
Ten przykład przedstawia proces krawiectwa w LimeSurvey.


To download this example, click on the following link: [[Media:Dynamic_change_of_the_report_when_data_is_entered_on_the_same_page_survey.zip|Dynamic changes survey example]].
Aby pobrać ten przykład, kliknij następujący link: [[Media:Dynamic_change_of_the_report_when_data_is_entered_on_the_same_page_survey.zip|Przykład ankiety dotyczącej zmian dynamicznych]].


Here is what the page looks like initially. You only see the question asking what city you live in:
Oto jak strona wygląda na początku. Widzisz tylko pytanie, w jakim mieście mieszkasz:




Line 280: Line 280:




Once you start to enter an answer, the tailoring process is also starting:
Gdy zaczniesz wpisywać odpowiedź, rozpoczyna się również proces dostosowywania:


<center>[[File:em-on_page_report-usage-2.jpg]]</center>
<center>[[File:em-on_page_report-usage-2.jpg]]</center>




As you enter answers, the table at the bottom of the page is updated to show the answer codes and values of your responses.
W miarę wpisywania odpowiedzi tabela u dołu strony jest aktualizowana i wyświetla kody odpowiedzi oraz wartości Twoich odpowiedzi.




<center>[[File:em-on_page_report-usage-3.jpg]]</center>
<center>[[File:em-on_page_report-usage-3.jpg]]</center>


=Common Debugging Examples=
=Typowe przykłady debugowania=




==Nested if() Statements (Conditional Logic)==
==Zagnieżdżone instrukcje if() (logika warunkowa)==




EM supports the function "if(test,do_if_true,do_if_false)" so that you can perform conditional logic or tailoring. This function can be nested to do the equivalent of "if { } else if { } else {  }". EM will let you know if the parentheses are not balanced (e.g., you are missing a closing right parenthesis), or if you have any extra right parentheses. You should try to count the parentheses as you compose long nested if statements, save it, check for syntax errors, and fix them if any are found. Let's check together the below example.  
EM obsługuje funkcję „if(test,do_if_true,do_if_false)”, dzięki czemu można wykonywać logikę warunkową lub dostosowywanie. Tę funkcję można zagnieżdżać, aby uzyskać odpowiednik „if { } else if { } else { }. EM poinformuje Cię, jeśli nawiasy nie są zrównoważone (np. brakuje Ci prawego nawiasu zamykającego) lub jeśli masz dodatkowe prawe nawiasy. Powinieneś spróbować policzyć nawiasy podczas tworzenia długo zagnieżdżonych instrukcji if, zapisać je, sprawdzić błędy składniowe i naprawić je, jeśli jakieś zostaną znalezione. Sprawdźmy wspólnie poniższy przykład.  


The group of questions used below can be accessed from here: [[Media:Example_tailoring_group11.zip|Tailoring survey example.lsg]]
Dostęp do poniższej grupy pytań można uzyskać tutaj: [[Media:Example_tailoring_group11.zip|Ankieta krawiecka przykład.lsg]]




First, with nothing entered, you just see "Hello."
Po pierwsze, gdy nic nie zostało wprowadzone, zobaczysz po prostu „Witam”.




Line 307: Line 307:




If you enter a name, it says, "Hello {name}."
Jeśli wpiszesz nazwę, wyświetli się komunikat „Witam {imię}.




Line 313: Line 313:




If you enter an age, you get a tailored message, depending upon whether you are a pre-school-age child or not:
Jeśli podasz wiek, otrzymasz wiadomość dostosowaną do tego, czy jesteś dzieckiem w wieku przedszkolnym, czy nie:




Line 319: Line 319:




School aged, teenager, or adult. Here is a  teenager who wants to be anonymous:
W wieku szkolnym, nastolatkiem lub dorosłym. Oto nastolatka, która chce zachować anonimowość:




Line 325: Line 325:




Here is the logic file of the group. As you can see in the "if-based" question, there are nested if statements based upon the person's age.
Oto plik logiczny grupy. Jak widać w pytaniu „jeśli”, istnieją zagnieżdżone stwierdzenia if oparte na wieku osoby.




Line 331: Line 331:




When you are originally editing this question, it is likely that at some point, you will have the wrong number of parentheses. Here's what happens if you have too few:
Kiedy pierwotnie edytujesz to pytanie, prawdopodobnie w pewnym momencie będziesz mieć niewłaściwą liczbę nawiasów. Oto, co się stanie, jeśli będzie ich za mało:




Line 337: Line 337:




If you hover over the word "if", which is surrounded by a red box, it says "Parentheses not balanced". In this case, there should be four closing parentheses after "already an adult!", but there are only three.
Jeśli najedziesz kursorem na słowo „jeśli” otoczone czerwoną ramką, pojawi się informacja „Niezrównoważone nawiasy”. W tym przypadku po „już dorosły!” powinny znajdować się cztery nawiasy zamykające, a są ich tylko trzy.


If, on the other hand, you have an extra right parenthesis, it will be surrounded by a red box, like this:
Jeśli natomiast masz dodatkowy prawy nawias, zostanie on otoczony czerwoną ramką, jak poniżej:




Line 345: Line 345:




When you are actually editing the question, the question looks like this:
Kiedy faktycznie edytujesz pytanie, pytanie wygląda następująco:




<center>[[File:em-nested-if-edit-screen.jpg]]</center>
<center>[[File:em-nested-if-edit-screen.jpg]]</center>

Latest revision as of 15:44, 13 September 2023


Przegląd tego, co zostało wcześniej wyjaśnione

Jeśli do tej pory śledziłeś strukturę podręcznika LimeSurvey, oznacza to, że znasz już terminologia LimeSurvey. Następnie omówiliśmy wyrażenia i zmienne, aby dowiedzieć się, jak ulepszyć nasze ankiety. W następnej części przeszliśmy do typów i znaczeń podświetlanie składni, aby dowiedzieć się, jak poprawić błędy składniowe.

Po omówieniu tych podstawowych pojęć moglibyśmy przejść do przykładów i wyjaśnienia, jak działają wyrażenia w LimeSurvey.


Podświetlanie składni

Poniższe zrzuty ekranu przedstawiają przykłady, ale nie pokazują wartości podpowiedzi. Etykietka narzędzia to pole informacyjne wyświetlane po najechaniu myszką na pogrubione kolorowe słowa.

Dzięki podświetleniu składni bardzo łatwo jest tworzyć poprawne wyrażenia, nawet te skomplikowane. Chociaż zespół LimeSurvey planuje spróbować zbudować GUI Konstruktora wyrażeń, możesz użyć istniejącego podświetlania składni, aby szybko identyfikować i naprawiać literówki. Możesz także użyć podpowiedzi, aby sprawdzić dokładność wyrażeń (np. potwierdzić, że wybrałeś żądane zmienne).

W każdym z przykładów znajdują się trzy kolumny:

  1. Source - to jest surowy tekst, który należy wpisać w polu pytania LimeSurvey
  2. Pretty Print - jest to podświetlony składniowo odpowiednik tego, co wpisałeś! N!#*Zauważ, że w tym podświetleniu wyrażenia są wyświetlane na brązowym tle, ale nie są otoczone nawiasami klamrowymi.
    • Ponieważ EM obsługuje podstawienia rekurencyjne, pokazanie nawiasów klamrowych w podświetleniu spowodowałoby błędy składniowe
  3. Result - to jest wynik generowany, gdy EM przetwarza źródło
    • Wszystko, co można poprawnie zastąpić, to
    • Wyrażenia z błędami są wyświetlane w linii, z podświetlaniem składni. Błędy są otoczone czerwoną linią.


Właściwa składnia

Poniżej znajdziesz przykłady poprawnej składni:

  1. Values: pokazuje, że znane zmienne są oznaczone kolorami w zależności od tego, czy są ustawione na bieżącej stronie. INSERTANS:xxxx w starym stylu otrzymuje swój własny styl kodowania kolorami
  2. Atrybuty pytania: pokazuje, że notacja z kropkami może uzyskać dostęp do niektórych właściwości pytań
  3. Math: pokazuje, że obsługiwane są podstawowe i złożone obliczenia
  4. TextProcessing: pokazuje niektóre dostępne funkcje przetwarzania tekstu
  5. Dates: pokazuje dwie dostępne funkcje związane z datą
  6. Conditional: pokazuje użycie funkcji if(). Opcje można zagnieżdżać.
  7. Dostosowany akapit: możesz całkowicie dostosować raport w oparciu o wcześniejsze wartości
  8. EM procesy w ciągach: pokazuje, że może dokonywać podstawień w ciągach. Ten przykład generuje dostosowaną nazwę obrazu.
  9. EM nie przetwarza nawiasów klamrowych w następujący sposób: pokazuje, że jeśli nawiasy klamrowe zostaną zmienione lub pomiędzy wyrażeniem a nawiasami klamrowymi znajduje się spacja, ES ignoruje wyrażenie.



Składnia EM zawierająca błędy

Oto przykłady typowych błędów podczas wpisywania wyrażeń ES. Zwróć uwagę, że podpowiedzi zawierają dodatkowe informacje.

  1. Inline Javascript, który zapomniał dodać spacji po nawiasie klamrowym
    • Ponieważ „document.write” pojawia się zaraz po nawiasie klamrowym, EM uważa, że jest to wyrażenie i red- pola „dokumentuj” i „zapisz”, ponieważ są to odpowiednio niezdefiniowane zmienne i funkcje
  2. Nieznane/błędnie napisane zmienne, funkcje i operatory
    • Tutaj zapomnieliśmy, że używamy nazwy zmiennej „gender” zamiast „ sex”, ale EM wychwytuje ten błąd. Zaznacza także „++”, ponieważ nie jest to obsługiwany operator.
  3. Ostrzega, jeśli użyje = zamiast eq lub wykona przypisania wartości
    • Zauważ, że „=” i „+=” są zapisane czerwonym tekstem, a nie czarnym. Jeśli najedziesz na nie myszką, zobaczysz ostrzeżenie, że przypisujesz wartość.
  4. Zła liczba argumentów funkcji
    • if() przyjmuje 3 argumenty, ale podano jej 4, więc najechanie nad zaznaczonym na czerwono „if” wyjaśni błąd i pokaże obsługiwaną składnię
    • sum() przyjmuje nieograniczoną liczbę argumentów, ale przed nawiasem zamykającym mieliśmy końcowy przecinek, więc jest to zaznaczone na czerwono! N!#Niedopasowane nawiasy
    • To jeden z najczęstszych błędów podczas zapisywania wyrażeń.
    • Pokazuje dwa przykłady braku nawiasów zamykających i jeden przykład posiadania o jeden za dużo nawiasów zamykających.
#Nieobsługiwana składnia
    • Jeśli użyjesz operatora lub znaków interpunkcyjnych, których ES nie obsługuje, zostanie to zaznaczone czerwoną ramką.
  1. Nieprawidłowe przypisania
    • Niektóre zmienne mają funkcję readWrite i można zmienić ich wartości. Inne są tylko do odczytu.
    • Jeśli spróbujesz zmienić wartość zmiennej tylko do odczytu, nie będzie to możliwe. EM oznaczy próbę czerwoną ramką.
    • Jeśli spróbujesz przypisać wartość do równania lub ciągu znaków, również otrzymasz błąd



"Żywe" przykłady podświetlania składni z aktywnymi podpowiedziami

Źródło Ładny nadruk Wynik
Oto przykład składni OK z podpowiedziami
Witaj {if(gender=='M','Pan','Pani')} {nazwisko}, jest teraz {data('g:i a',time())}. Czy wiesz, gdzie są Twoje {sum(numPets,numKids)} dzieci i zwierzęta?
Oto przykład składni OK z podpowiedziami
Witaj , jeśli ( płeć == „M” , „Pan” , „Pani” ) nazwisko , teraz jest data ( „g:i a” , godzina ()) . Czy wiesz, gdzie jest Twoja suma ( numPets , numKids ) dzieci i zwierząt domowych?
Oto przykład składni OK z podpowiedziami
Witam, panie Smith , jest teraz 6:07. Czy wiesz, gdzie jest Twoja trójka dzieci i zwierzęta?
Oto typowe błędy, dzięki którym możesz zobaczyć podpowiedzi
Zmienne używane przed ich zadeklarowaniem: {notSetYet}
Nieznana funkcja: {iff(numPets>numKids,1,2)}
Nieznana zmienna: {sum(age,num_pets,numKids)}
Błędne # parametry: {sprintf()},{if(1,2)},{date()}
Przypisz zmienne tylko do odczytu:{TOKEN:ATTRIBUTE_1+=10},{name='Sally'}
Nawiasy niezrównoważone: {pow(3,4},{(pow(3,4)},{pow(3,4))}
Oto typowe błędy, dzięki którym możesz zobaczyć podpowiedzi
Zmienne używane przed ich zadeklarowaniem: notSetYet
Nieznana funkcja: iff ( numPets > numKids ,1,2)
Nieznana zmienna: suma ( wiek , num_pets , numKids )
Błędne # parametry: sprintf () , if (1,2) , date ()
Przypisz zmienne tylko do odczytu: TOKEN:ATTRIBUTE_1 += 10 , name = 'Sally'
Nawiasy niezrównoważone: pow (3,4 , ( pow (3,4) , pow (3,4) )
Oto typowe błędy, dzięki którym możesz zobaczyć podpowiedzi
Zmienne używane przed ich zadeklarowaniem: notSetYet
Nieznana funkcja: iff ( numPets > numKids ,1,2)
Nieznana zmienna: suma ( wiek , num_pets , numKids )
Błędne # parametry: sprintf () , if (1,2) , date ()
Przypisz zmienne tylko do odczytu: TOKEN:ATTRIBUTE_1 += 10 , name = 'Sally'
Nawiasy niezrównoważone: pow (3,4 , ( pow (3,4) , pow (3,4) )
Oto część nieobsługiwanej składni
Brak obsługi „++”, „--”, „%”, „;”: {min(++age, --age,age % 2);}
Ani „|”, „&”, „^”: {(suma(2 | 3,3 i 4,5 ^ 6)}}
Ani tablice: {name[2], name['moje']}
Oto część nieobsługiwanej składni
Brak obsługi '++', '--', '%',';': min ( ++ wiek , -- wiek , wiek % 2) ;
Ani „|”, „&”, „^”: ( suma (2 | 3,3 i 4,5 ^ 6) }
Ani tablice: nazwa [ 2 ] , nazwa [ 'moje' ]
Oto część nieobsługiwanej składni
Brak obsługi '++', '--', '%',';': min ( ++ wiek , -- wiek , wiek % 2) ;
Ani „|”, „&”, „^”: ( suma (2 | 3,3 i 4,5 ^ 6) }
Ani tablice: nazwa [ 2 ] , nazwa [ 'moje' ]


Przykłady krawiectwa (np. rozszerzenie {INSERTANS:xxx})

"Szanowny {Panie}/{Pani} Smith..."

Użyj funkcji if(), aby warunkowo wybrać, czy wyświetlać „Pan”. lub „Pani”.

Składnia jest następująca: if(test,do_if_true,do_if_false).

# Kod Pytanie Wpisz
1 płeć Jaka jest Twoja płeć? Płeć
|example1 Szanowny {if(gender=='M','Pan','Pani')} Smith, ... Długi tekst



Jak można zaobserwować poniżej, określenia „Pan” i „Pani” są dopasowane do tego, co respondent wybiera jako odpowiedź na pytanie „płeć”.



"Szanowny {Panie}/{Pani} Smith..." w e-mailu z zaproszeniem

Możesz wykorzystać powyższy przykład w wiadomości e-mail z zaproszeniem, korzystając z atrybutów z tabeli tokenów. Użyj funkcji if(), aby wybrać, czy „Pan”. lub „Pani”. należy użyć w wiadomości e-mail.


Składnia jest następująca: „if(test,do_if_true,do_if_false)”.

# atrybut wartość
1 Nazwisko Smith
2 Adres e-mail test@test. com
3 ATRYBUT_2 M


Tekst w e-mailu z zaproszeniem:

Drogi {if(ATTRIBUTE_2=='M','Pan','Pani')} {LASTNAME},

zostałeś zaproszony do wzięcia udziału w ankiecie:

https://...



e-mail Widok:



Przykłady obliczeń/oceny

Oblicz wartości oceny w czasie wykonywania i zapisz wyniki w danych ankiety

W tym przykładzie wykorzystano wszystkie funkcje EM, w tym trafność, dopasowanie i typ pytania Równanie.

Pokazuje również, że wszystkie z nich obsługują JavaScript, więc jeśli masz te funkcje na stronie, będzie ona dynamicznie się zmieniać, gdy ludzie będą ustawiać i zmieniać swoje odpowiedzi.

# Kod Pytanie Typ Trafność
1 numKids Ile masz dzieci? Wprowadzenie numeryczne - 2 kid1 Ile lat ma Twoje pierwsze dziecko? Wprowadzenie numeryczne numKids >= 1
3 kid2 Ile lat ma Twoje drugie dziecko dziecko? Wprowadzenie liczbowe numKids >= 2
4 kid3 Ile lat ma Twoje trzecie dziecko? Wprowadzenie liczbowe numKids >= 3
6 sumKidAges {sum(kid1.NAOK,kid2. NAOK,kid3.NAOK,kid4.NAOK)} Równanie 1
7 kidSummary Powiedziałeś, że masz {numKids}. {if(numKids==1,'dziecko','dzieci')}. {if(numKids>1,implode(' ','Suma wieku Twoich pierwszych ',min(numKids,4),' dzieci to ',sumKidAges,'.'),' ')} |1


Aby pobrać ten przykład, kliknij poniższy link: Assessments_survey_example.


Poniżej możesz znaleźć zrzuty ekranu z reprezentatywnymi pytaniami. Jak widać, składnia EM podświetla wszystkie pola, które mogą zawierać dostosowywanie. Tutaj zobaczysz przykłady trafności podświetlania składni, typu pytania Równanie i podstawień w pytaniu. Możesz także użyć podstawień w ramach Pomocy, wyświetlania nagłówka grupy, wiadomości powitalnej i wiadomości końcowej.

W następnym przykładzie, ponieważ trafność wynosi {numKids >= 2), pytanie będzie widoczne tylko wtedy, gdy respondent zgłosi, że ma co najmniej dwójkę dzieci.



Poniżej możesz zauważyć, że do każdej zmiennej dołączony jest przyrostek .NAOK. Dzieje się tak ze względu na sposób, w jaki EM obsługuje znaczenie kaskadowe. Jeśli nie masz .NAOK, suma zostanie obliczona tylko wtedy, gdy dana osoba oświadczyła, że ma 4 dzieci (np. jeśli wszystkie zmienne są istotne). Użycie .NAOK oznacza, że chcemy obliczyć sumę, nawet jeśli wszystkie lub niektóre zmienne są nieistotne (np. „Nie dotyczy” (NA) jest w porządku (OK)).

Jednak atrybut .NAOK wpływa tylko na to, czy zmienne są przekazywane do EM. Jeśli respondentka początkowo twierdzi, że ma 3 dzieci i podaje wiek każdego z nich, potem zmienia zdanie i twierdzi, że ma 2, to nie chcemy widzieć sumy 3 wprowadzonych wartości - ponieważ trzecie dziecko „nie dotyczy” w naszym przypadku już:



Każde oddzielne wyrażenie jest oznaczone kolorem i brązowym tłem. Jak widać, są tu trzy osobne wyrażenia. Ostatnia zawiera komunikat, który wyświetla się warunkowo tylko wtedy, gdy dana osoba ma więcej niż jedno dziecko.



Oto zrzuty ekranu przedstawiające ankietę w akcji.

Kiedy po raz pierwszy odwiedzasz tę stronę, widzisz to. Zauważ, że jest napisane „Masz 0 dzieci” zamiast „Masz 0 dzieci”.



Jeśli zmienię wartość liczby dzieci na 1, wyświetlacz natychmiast zmieni się na następujący, mimo że znajduje się na tej samej stronie:



Teraz zauważ, że gramatyka jest poprawna: „Masz 1 „dziecko””.

Teraz zmieniam wartość liczby dzieci na 3, a wyświetlacz natychmiast się na nią zmienia.

Zwróć uwagę, że na dole widzisz komunikat warunkowy: „Suma wieku twoich pierwszych 3 dzieci wynosi 0”.



Teraz wprowadzę wiek moich wyimaginowanych dzieci i otrzymuję następujący ekran podsumowujący ich wiek:



Ponownie, wynik i wyświetlacz aktualizują się natychmiast po wprowadzeniu wartości, więc możesz użyć tego do wyświetlenia bieżącej sumy Wyniku Oceny.


Teraz zmieniam wartość liczby dzieci na 2. Wyświetlacz zmienił się na następujący:



Zauważ, że chociaż dla trzeciego dziecka wprowadziłem wartość 5,5, w raporcie sumowane są teraz tylko wartości moich pierwszych dwojga dzieci.

Powodem tego jest to, że trzecia wartość jest teraz nieistotna, a nieistotne wartości są aktywnie ignorowane przez EM.

Gdybym miał ponownie zmienić liczbę dzieci na 3, ponownie zobaczyłbym wprowadzoną wartość 5,5. Dzięki temu nie tracę żadnych informacji, które wprowadzam na stronie.

Jeśli jednak przejdę do następnej lub poprzedniej strony, wszystkie nieistotne wartości zostaną usunięte w sesji i bazie danych. Tak więc, jeśli miałbym utrzymać wartość na poziomie 2, przejść do następnej strony, a następnie wrócić i stwierdzić, że tak naprawdę mam 3 dzieci, nie widziałbym już wieku 5,5.


Wprowadź dane i zobacz dynamicznie zmieniający się raport tego, co zostało wprowadzone na tej samej stronie

Ten przykład przedstawia proces krawiectwa w LimeSurvey.

Aby pobrać ten przykład, kliknij następujący link: Przykład ankiety dotyczącej zmian dynamicznych.

Oto jak strona wygląda na początku. Widzisz tylko pytanie, w jakim mieście mieszkasz:



Gdy zaczniesz wpisywać odpowiedź, rozpoczyna się również proces dostosowywania:


W miarę wpisywania odpowiedzi tabela u dołu strony jest aktualizowana i wyświetla kody odpowiedzi oraz wartości Twoich odpowiedzi.


Typowe przykłady debugowania

Zagnieżdżone instrukcje if() (logika warunkowa)

EM obsługuje funkcję „if(test,do_if_true,do_if_false)”, dzięki czemu można wykonywać logikę warunkową lub dostosowywanie. Tę funkcję można zagnieżdżać, aby uzyskać odpowiednik „if { } else if { } else { }”. EM poinformuje Cię, jeśli nawiasy nie są zrównoważone (np. brakuje Ci prawego nawiasu zamykającego) lub jeśli masz dodatkowe prawe nawiasy. Powinieneś spróbować policzyć nawiasy podczas tworzenia długo zagnieżdżonych instrukcji if, zapisać je, sprawdzić błędy składniowe i naprawić je, jeśli jakieś zostaną znalezione. Sprawdźmy wspólnie poniższy przykład.

Dostęp do poniższej grupy pytań można uzyskać tutaj: Ankieta krawiecka przykład.lsg


Po pierwsze, gdy nic nie zostało wprowadzone, zobaczysz po prostu „Witam”.



Jeśli wpiszesz nazwę, wyświetli się komunikat „Witam {imię}”.



Jeśli podasz wiek, otrzymasz wiadomość dostosowaną do tego, czy jesteś dzieckiem w wieku przedszkolnym, czy nie:



W wieku szkolnym, nastolatkiem lub dorosłym. Oto nastolatka, która chce zachować anonimowość:



Oto plik logiczny grupy. Jak widać w pytaniu „jeśli”, istnieją zagnieżdżone stwierdzenia if oparte na wieku osoby.



Kiedy pierwotnie edytujesz to pytanie, prawdopodobnie w pewnym momencie będziesz mieć niewłaściwą liczbę nawiasów. Oto, co się stanie, jeśli będzie ich za mało:



Jeśli najedziesz kursorem na słowo „jeśli” otoczone czerwoną ramką, pojawi się informacja „Niezrównoważone nawiasy”. W tym przypadku po „już dorosły!” powinny znajdować się cztery nawiasy zamykające, a są ich tylko trzy.

Jeśli natomiast masz dodatkowy prawy nawias, zostanie on otoczony czerwoną ramką, jak poniżej:



Kiedy faktycznie edytujesz pytanie, pytanie wygląda następująco: