Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende ÜberarbeitungNächste ÜberarbeitungBeide Seiten der Revision |
de:create:debugging [26.06.2017 12:52] – admin | de:create:debugging [26.06.2017 13:09] – [Filterfragen] admin |
---|
Formale Fehler sind am einfachsten zu finden: Wenn ein Strichpunkt am Ende eines Befehls fehlt oder eine Klammer (Syntaxfehler), dann wird der Programmcode gar nicht erst ausgeführt. SoSci Survey zeigt dann eine Fehlermeldung, bei JavaScript muss man erst einmal die Fehlerkonsole öffnen. | Formale Fehler sind am einfachsten zu finden: Wenn ein Strichpunkt am Ende eines Befehls fehlt oder eine Klammer (Syntaxfehler), dann wird der Programmcode gar nicht erst ausgeführt. SoSci Survey zeigt dann eine Fehlermeldung, bei JavaScript muss man erst einmal die Fehlerkonsole öffnen. |
| |
Inhaltliche Fehler sind schwieriger zu finden. Denn hier arbeitet der Code, führt aber nicht zum erwünschten Ergebnis. Dann hilft die Anzeige, was im Hintergrund passiert (s. [[#beispiel_1|Beispiel 1]]). | Inhaltliche Fehler sind schwieriger zu finden. Denn hier arbeitet der Code, führt aber nicht zum erwünschten Ergebnis. Dann hilft die Anzeige, was im Hintergrund passiert (s. [[#beispiel|Beispiel]]). |
| |
| |
| |
| |
=== Filterfragen === | ==== Filterfragen ==== |
| |
Als Beispiel dient hier eine Fragebogen-Seite mit einem kleinem [[:de:create:filters|Filter]]. | Als Beispiel dient hier eine Fragebogen-Seite mit einem kleinem [[:de:create:filters|Filter]]. |
{{:de:create:scr.debug.info01source.png?nolink|Beispiel für eine Fragebogen-Seite mit Filter}} | {{:de:create:scr.debug.info01source.png?nolink|Beispiel für eine Fragebogen-Seite mit Filter}} |
| |
Der Befehl ''value()'' erzeugt automatisch einen Eintrag in der Debug-Information. Sie können obiger Debug-Information z.B. entnehmen, dass der PHP-Code den Befehl ''value('AB10')'' verwendet hat und dass dieser den Wert 2 zurücklieferte. | Der Befehl ''value()'' erzeugt automatisch einen Eintrag in der Debug-Information. Sie können der [[#debug_information|Debug-Information]] entnehmen, dass der PHP-Code den Befehl ''value('AB10')'' verwendet hat und dass dieser den Wert 2 zurücklieferte. |
| |
| {{ :de:create:scr.debug.info01.png?nolink |Debug-Information zur Filterfrage}} |
| |
Weiterhin sehen wir, dass die Frage "AB09" angezeigt wird, nicht aber die Frage "AB05" aus dem Filter -- denn der Wert ''2'', den ''value()'' liefert, entspricht ja nicht dem Wert ''1'', auf welchen der Filter prüft. | Weiterhin sehen wir, dass die Frage "AB09" angezeigt wird, nicht aber die Frage "AB05" aus dem Filter -- denn der Wert ''2'', den ''value()'' liefert, entspricht ja nicht dem Wert ''1'', auf welchen der Filter prüft. |
| |
| |
=== Variablen === | ==== Variablen ==== |
| |
Mit dem Befehl ''[[:de:create:functions:debug]]'' können Sie den Wert beliebiger Variablen im Datensatz oder im PHP-Code anzeigen. Als Beispiel dient folgende Fragebogen-Seite, die aus der offenen Texteingabe des Teilnehmers in "AB11_01" einen neuen Wert berechnet und in einem Filter verwendet. | Mit dem Befehl ''[[:de:create:functions:debug]]'' können Sie den Wert beliebiger Variablen im Datensatz oder im PHP-Code anzeigen. Als Beispiel dient folgende Fragebogen-Seite, die aus der offenen Texteingabe des Teilnehmers in "AB11_01" einen neuen Wert berechnet und in einem Filter verwendet. |
Im Debug-Modus erzeugt ''debug()'' eine Ausgabe sowohl im Fragebogen als auch in der Debug-Information. Im normalen Interview sieht man davon nichts. | Im Debug-Modus erzeugt ''debug()'' eine Ausgabe sowohl im Fragebogen als auch in der Debug-Information. Im normalen Interview sieht man davon nichts. |
| |
{{:de:create:scr.debug.info02.png?nolink|}} | {{ :de:create:scr.debug.info02.png?nolink |}} |
| |
Beim ersten Aufruf von ''debug()'' teilt SoSci Survey zunächst pflichtbewusst mit, dass der Parameter eine String mit dem Inhalt "AB11_01" ist. Darüber hinaus wird erkannt, dass es sich dabei um die Kennung einer Variable aus dem Datensatz handelt, deshalb zeigt es automatisch den Wert aus dem Datensatz (6) an. | Beim ersten Aufruf von ''debug()'' teilt SoSci Survey zunächst pflichtbewusst mit, dass der Parameter eine String mit dem Inhalt "AB11_01" ist. Darüber hinaus wird erkannt, dass es sich dabei um die Kennung einer Variable aus dem Datensatz handelt, deshalb zeigt es automatisch den Wert aus dem Datensatz (6) an. |
| |
| |
==== Beispiel 1 ==== | ==== Leere Seiten ==== |
| |
| Wenn eine Fragebogen-Seite keine Inhalt zeigt, springt SoSci Survey automatisch weiter zur nächsten Seite. Dies passiert z.B. wenn Fragen nur in Abhängigkeit eines Filters angezeigt werden. Im folgenden Beispiel wird Frage "AB05" nur angezeigt, wenn der Teilnehmer in der Auswahl AB10 den Wert 1 auswählte. |
| |
| {{:de:create:scr.debug.info03source.png?nolink|Eine Fragebogenseite, die u.U. leer bleibt}} |
| |
| In der Debug-Information ist nicht nur ersichtlich, dass und weshalb die Frage "AB05" nicht angezeigt wird, sondern auch dass es automatisch mit der nächsten Seite Nr. 4 weitergeht. |
| |
| {{ :de:create:scr.debug.info03.png?nolink |beispiel}} |
| |
| Darüber hinaus ist links oben an der Seitennummer "3+4" erkennbar, dass die Seiten 3 und 4 gemeinsam angezeigt werden. Diese Anzeige erhält man auch, wenn man ''[[:de:create:functions:gotopage]]'' verwendet: Dieser Befehl springt aus einer Fragebogenseite hinaus direkt zu einer anderen. |
| |
| |
| ==== Beispiel ==== |
| |
Folgender PHP-Code sollte ab einem Summenwert von 25 zu einer anderen Fragebogen-Seite springen und dort (über den weiteren Fragen) einen Text anzeigen -- aber vom Text ist nichts zu sehen: | Folgender PHP-Code sollte ab einem Summenwert von 25 zu einer anderen Fragebogen-Seite springen und dort (über den weiteren Fragen) einen Text anzeigen -- aber vom Text ist nichts zu sehen: |