Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
Nächste ÜberarbeitungBeide Seiten der Revision
de:create:debugging [26.06.2017 13:09] – [Filterfragen] adminde:create:debugging [21.02.2020 18:07] – [Beispiel] peter.vollmer
Zeile 16: Zeile 16:
 ===== Fehlersuche im PHP-Code ===== ===== Fehlersuche im PHP-Code =====
  
-Starten Sie den Fragebogen im Debug-Modus, indem Sie bei **Fragebogen zusammenstellen** auf den gelben Pfeil {{:button.debug.gif?nolink|Debugging des Frgaebogens}} klicken. Verwenden Sie den gelben Pfeil mit vorgestelltem Strich {{:button.debug.here.gif?nolink|Debugging ab aktueller Seite}}, um den Debug-Modus ab einer bestimmten Seite zu starten.+Starten Sie den Fragebogen im Debug-Modus, indem Sie bei **Fragebogen zusammenstellen** auf den gelben Pfeil {{:button.debug.gif?nolink|Debugging des Fragebogens}} klicken. Verwenden Sie den gelben Pfeil mit vorgestelltem Strich {{:button.debug.here.gif?nolink|Debugging ab aktueller Seite}}, um den Debug-Modus ab einer bestimmten Seite zu starten.
  
-Im Debugging-Modus haben Sie oben eine zusätzliche Steuerleiste (Debug-Leiste) und Sie sehen neben den Fragen zusätzlich Informationen.+  * Im Debug-Modus ({{:button.debug.gif?nolink|Debug-Modus}}) und im Vorschau-Modus ({{:button.run.gif?nolink|Vorschau-Modus}}) sehen Sie Warnungen (orange) und Hinweise (gelb) auf mögliche Probleme, die im normalen Fragebogen nicht angezeigt werden (z.B. wenn Sie ''value()'' auf eine Variable anwenden, die noch nicht abgefragt wurde). 
 +  * Im Debug-Modus wird neben jeder Frage deren Kennung und Beschreibung anzeigt. Fahren Sie mit dem Mauszeiger über die Beschreibung, so können Sie in einem Eingabefeld Notizen zur Frage machen. Diese werden auch im **Fragenkatalog** angezeigt, wenn Sie eine Frage zum Bearbeiten öffnen. 
 +  * Im Debug-Modus haben Sie oben eine zusätzliche Steuerleiste (Debug-Leiste) und Sie sehen neben den Fragen zusätzlich Informationen.
  
 {{:de:create:scr.debug.bar.png?nolink|Debug-Leiste}} {{:de:create:scr.debug.bar.png?nolink|Debug-Leiste}}
Zeile 72: Zeile 74:
 {{: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 der [[#debug_information|Debug-Information]] 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}} {{ :de:create:scr.debug.info01.png?nolink |Debug-Information zur Filterfrage}}
Zeile 87: Zeile 89:
 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 |}}
Zeile 102: Zeile 104:
 {{: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}}
Zeile 120: Zeile 122:
 </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 vor das ''goTopage()''.
  
 <code php> <code php>
de/create/debugging.txt · Zuletzt geändert: 28.07.2022 22:02 von admin
 
Falls nicht anders bezeichnet, ist der Inhalt dieses Wikis unter der folgenden Lizenz veröffentlicht: CC Attribution-Share Alike 4.0 International
Driven by DokuWiki