Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste ÜberarbeitungBeide Seiten der Revision
de:create:transfer-responses [21.07.2018 17:49] – [Antworten in einer Folgefrage anzeigen] ncruzde:create:transfer-responses [25.09.2018 19:59] – Code vereinfacht mittels id() admin
Zeile 101: Zeile 101:
 Der folgende PHP-Code liest mittels ''[[:de:create:functions:value]]'' alle 10 möglichen Eingabefelder aus, überprüft, ob etwas eingetragen wurde, bereitet die Platzhalter ''%text1%'' bis ''%text10%'' vor und zeigt die Frage FF01 mit den passenden Items/Optionen an. Der folgende PHP-Code liest mittels ''[[:de:create:functions:value]]'' alle 10 möglichen Eingabefelder aus, überprüft, ob etwas eingetragen wurde, bereitet die Platzhalter ''%text1%'' bis ''%text10%'' vor und zeigt die Frage FF01 mit den passenden Items/Optionen an.
  
-**Wichtig:** Der PHP-Code für "Offene Texteingabe" und "Offene Nennungen" unterscheidet sich geringfügig in Zeile 4, weil die Variablen nach einem anderen Schema benannt werden ("TX01_01" vs. "TX02x01"). +<code php>
- +
-^Offene Texteingabe^Offene Nennungen^ +
-|<code php>+
 $frage = 'TX01'; $frage = 'TX01';
 $items = array(); $items = array();
 for ($i=1; $i<=10; $i++) { for ($i=1; $i<=10; $i++) {
-  $itemID = $frage.'_'.sprintf('%02d', $i);+  $itemID = id($frage, $i);
   $antwort = value($itemID);   $antwort = value($itemID);
   if (trim($antwort) != '') {   if (trim($antwort) != '') {
Zeile 119: Zeile 116:
   question('FF01', $items);   question('FF01', $items);
 } }
-</code>|<code php> +</code>
-$frage = 'TX02'; +
-$items = array(); +
-for ($i=1; $i<=10; $i++) { +
-  $itemID = $frage.'x'.sprintf('%02d', $i); +
-  $antwort = value($itemID); +
-  if (trim($antwort) != '') { +
-    replace('%text'.$i.'%', $antwort); +
-    $items[] = $i; +
-  } +
-+
-// Folgefrage anzeigen +
-if (count($items) > 0) { +
-  question('FF01', $items); +
-+
-</code>|+
  
 Zur Erklärung des PHP-Codes: Der IF-Filter am Ende sorgt dafür, dass die Folgefrage übersprungen wird, wenn der Teilnehmer gar kein Eingabefeld ausgefüllt hat. Die Funktion ''trim()'' entfernt Leerzeichen am Anfang und Ende des eingegebenen Textes, sodass ein paar Leerzeichen im Textfeld nicht als gültige Antwort interpretiert werden. Die Funktion ''sprintf()'' mit dem Parameter '''%02d''' sorgt dafür, dass eine Zahl zweistellig mit führender Null angezeigt wird (also z.B. ''01'' statt nur ''1''). Zur Erklärung des PHP-Codes: Der IF-Filter am Ende sorgt dafür, dass die Folgefrage übersprungen wird, wenn der Teilnehmer gar kein Eingabefeld ausgefüllt hat. Die Funktion ''trim()'' entfernt Leerzeichen am Anfang und Ende des eingegebenen Textes, sodass ein paar Leerzeichen im Textfeld nicht als gültige Antwort interpretiert werden. Die Funktion ''sprintf()'' mit dem Parameter '''%02d''' sorgt dafür, dass eine Zahl zweistellig mit führender Null angezeigt wird (also z.B. ''01'' statt nur ''1'').
  
 **Hinweis:** Sollte der PHP-Code nicht das gewünschte Ergebnis liefern, sei nochmals auf das Kapitel [[:de:create:filter-solving]] verwiesen. **Hinweis:** Sollte der PHP-Code nicht das gewünschte Ergebnis liefern, sei nochmals auf das Kapitel [[:de:create:filter-solving]] verwiesen.
de/create/transfer-responses.txt · Zuletzt geändert: 10.05.2023 16:47 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