Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende ÜberarbeitungNächste ÜberarbeitungBeide Seiten der Revision |
de:create:debugging [26.06.2017 13:08] – admin | de:create:debugging [26.06.2017 13:11] – admin |
---|
{{: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. |
Hier wurde zweimal der Befehl ''debug()'' eingesetzt. Der Parameter ist einmal die Kennung der offenen Texteingabe "AB11_01" und einmal die PHP-Variable ''$num'', in welcher das Ergebnis der Berechnung gespeichert wird. | Hier wurde zweimal der Befehl ''debug()'' eingesetzt. Der Parameter ist einmal die Kennung der offenen Texteingabe "AB11_01" und einmal die PHP-Variable ''$num'', in welcher das Ergebnis der Berechnung gespeichert wird. |
| |
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|Debug-Information]]. Im normalen Interview sieht man davon nichts. |
| |
{{ :de:create:scr.debug.info02.png?nolink |}} | {{ :de:create:scr.debug.info02.png?nolink |}} |
{{:de:create:scr.debug.info03source.png?nolink|Eine Fragebogenseite, die u.U. leer bleibt}} | {{: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. | In der [[#debug-information|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}} | {{ :de:create:scr.debug.info03.png?nolink |beispiel}} |
</code> | </code> |
| |
Hier helfen nun die Informationen, welche der Debugging-Modus liefert. Dieser zeigt an, dass der Befehl ''[[:de:create:functions:text]]'' gar nicht ausgeführt wird, das ''goToPage()'' aber schon. Am Filter kann es also nicht liegen, dieser funktioniert. Ein Blick in die Anleitung des Befehls ''[[:de:create:functions:gotopage]]'' verrät daraufhin, dass dieser direkt zur angegeben Seite springt und dann nichts mehr von der aktuellen Seite ausgeführt wird, in diesem Beispiel also auch nicht das ''text()''. Kennt man die Ursache, ist die Lösung einfach: Das ''text()'' muss vior das ''goTopage()''. | Hier helfen nun die Informationen, welche der Debugging-Modus liefert ([[#debug-information|Debug-Information]]). Diese zeigen, dass der Befehl ''[[:de:create:functions:text]]'' gar nicht ausgeführt wird, das ''goToPage()'' aber schon. Am Filter kann es also nicht liegen, dieser funktioniert. |
| |
| Ein Blick in die Anleitung des Befehls ''[[:de:create:functions:gotopage]]'' verrät daraufhin, dass dieser direkt zur angegeben Seite springt und dann nichts mehr von der aktuellen Seite ausgeführt wird, in diesem Beispiel also auch nicht das ''text()''. Kennt man die Ursache, ist die Lösung einfach: Das ''text()'' muss vior das ''goTopage()''. |
| |
<code php> | <code php> |