[[put()]]
 

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:functions:put [26.11.2016 11:35] – Kapitel umgestellt und Transformation ergänzt adminde:create:functions:put [12.03.2019 00:26] – Umkodierung von 1 bis 5 auf -2 bis 2 = Subtraktion von 3 christiane.muehle
Zeile 1: Zeile 1:
 ====== put() ====== ====== put() ======
  
-''void **put**(string //Variable//, mixed //Wert//)''+''void **put**(string //Variable//, mixed //Wert//, [boolean //JedeVariable//])''
  
 Mit der Funktion ''put()'' können Sie einen einzelnen Wert im Datensatz abspeichern. ''put()'' wird verwendet, wenn der Fragebogen einen Wert berechnet oder würfelt -- und man diesen Wert in der Auswertung benötigt. Wird beispielsweise der Stimulus einer Frage zufällig variiert, dann muss man für die Auswertung wissen, wozu der Befragte sich geäußert hat. Mit der Funktion ''put()'' können Sie einen einzelnen Wert im Datensatz abspeichern. ''put()'' wird verwendet, wenn der Fragebogen einen Wert berechnet oder würfelt -- und man diesen Wert in der Auswertung benötigt. Wird beispielsweise der Stimulus einer Frage zufällig variiert, dann muss man für die Auswertung wissen, wozu der Befragte sich geäußert hat.
Zeile 7: Zeile 7:
   * //Variable//\\ Die Kennung der internen Variable (s. unten), in welcher der //Wert// gespeichert werden soll. Die Kennung wird als String in Anführungszeichen angegeben, z.B. '''IV01_01'''.   * //Variable//\\ Die Kennung der internen Variable (s. unten), in welcher der //Wert// gespeichert werden soll. Die Kennung wird als String in Anführungszeichen angegeben, z.B. '''IV01_01'''.
   * //Wert//\\ Eine Zahl oder ein Text (String), welche%%(r)%% in der Variable abgelegt werden soll. Für gewöhnlich wird als zweiter Parameter eine Variable mit dem entsprechenden Wert angegeben.   * //Wert//\\ Eine Zahl oder ein Text (String), welche%%(r)%% in der Variable abgelegt werden soll. Für gewöhnlich wird als zweiter Parameter eine Variable mit dem entsprechenden Wert angegeben.
 +  * //JedeVariable// (optional)\\ Normalerweise speichert `put()` ausschließlich in [[de:create:questions:internal|interne Variablen]]. In Ausnahmefällen kann es sinnvoll sein, den Wert einer anderen Variable zu überschreiben. In diesem Fall kann ein dritter Parameter ''true'' angegeben werden.
 +
 +**Warnung:** Verwenden Sie den dritten Parameter //JedeVariable// nur dann, wenn Sie genau wissen, was Sie tun und eine interne Variable nicht verwendet werden kann. Das Verändern von Antwortcodes kann die Validität des Datensatzes gefährden. Für die meisten Fälle sind die Funktionen ''[[:de:create:functions:preset]]'' und ''[[:de:create:functions:dropvalue]]'' deutlich besser geeignet.
  
  
Zeile 57: Zeile 60:
 // Nur gültige Werte (>0) speichern // Nur gültige Werte (>0) speichern
 if ($original > 0) { if ($original > 0) {
-  put('SK02_01', $original - 5);+  put('SK02_01', $original - 3);
 } else { } else {
   put('SK02_01', false);   put('SK02_01', false);
Zeile 67: Zeile 70:
 <code php> <code php>
 $org = value('SK01_01'); $org = value('SK01_01');
-put('SK02_01', ($org > 0) ? $org - : false);+put('SK02_01', ($org > 0) ? $org - : false);
 </code> </code>
  
Zeile 77: Zeile 80:
   $original = value(id('SK01', $item));   $original = value(id('SK01', $item));
   if ($original > 0) {   if ($original > 0) {
-    put(id('SK02', $item), $original - 5);+    put(id('SK02', $item), $original - 3);
   } else {   } else {
     put(id('SK02', $item), false);     put(id('SK02', $item), false);
Zeile 137: Zeile 140:
 for ($i=0; $i<count($elements); $i++) { for ($i=0; $i<count($elements); $i++) {
   // Kennung der internen Variable aus Frage-Kennung plus Index erstellen   // Kennung der internen Variable aus Frage-Kennung plus Index erstellen
-  $id = 'IV01_'.sprintf('%02d', $i + 1);+  $id = id('IV01', $i + 1);
   // Hier den Wert aus dem Array speichern   // Hier den Wert aus dem Array speichern
   put($id, $elements[$i]);   put($id, $elements[$i]);
Zeile 143: Zeile 146:
 </code> </code>
  
-Der Befehl ''sprintf()'' mit dem ersten Parameter '''%02d''' sorgt einfach dafür, dass aus der Zahl eine zweistellige Zahl mit führender Null erstellt wird, also z.B. '''03''' aus ''3''. Der Punkt (''.'') verknüpft die Kennung der Frage mit dieser zweistelligen Zahl, also z.B. '''IV01_03''. Zum Index ''$i'' wird noch eins addiert, weil die Indizes von Arrays bei 0 zu zählen beginnen, die internen Variablen aber bei 1.+Zum Index ''$i'' wird in der Zeile mit ''[[:de:create:functions:id]]'' der Wert eins addiert, weil die Indizes von Arrays bei 0 zu zählen beginnen, die internen Variablen aber bei 1.
  
 Oftmals ist es sinnvoller, die Ränge der Elemente zu speichern. Etwa wenn ''shuffle()'' eingesetzt wird, um Texte, Bilder oder Seiten im Fragebogen zufällig zu mischen. Die Ränge der Elemente speichern Sie mit folgendem PHP-Code. Oftmals ist es sinnvoller, die Ränge der Elemente zu speichern. Etwa wenn ''shuffle()'' eingesetzt wird, um Texte, Bilder oder Seiten im Fragebogen zufällig zu mischen. Die Ränge der Elemente speichern Sie mit folgendem PHP-Code.
Zeile 150: Zeile 153:
 for ($i=0; $i<count($elements); $i++) { for ($i=0; $i<count($elements); $i++) {
   // Kennung der internen Variable aus Frage-Kennung plus Inhalt des Elements (!) erstellen   // Kennung der internen Variable aus Frage-Kennung plus Inhalt des Elements (!) erstellen
-  $id = 'IV01_'.sprintf('%02d', $elements[$i]);+  $id = id('IV01', $elements[$i]);
   // Hier den Rang speichern   // Hier den Rang speichern
   put($id, $i + 1);   put($id, $i + 1);
Zeile 167: Zeile 170:
 for ($i=0; $i<count($indices); $i++) { for ($i=0; $i<count($indices); $i++) {
   // Rang speichern wie oben   // Rang speichern wie oben
-  $id = 'IV01_'.sprintf('%02d', $indices[$i] + 1);+  $id = id('IV01', $indices[$i] + 1);
   put($id, $i + 1);   put($id, $i + 1);
   // Seite in der Abfolge speichern   // Seite in der Abfolge speichern
Zeile 173: Zeile 176:
 } }
 // Neue Seitenabfolge setzen // Neue Seitenabfolge setzen
-setPageOrder($random);+// Nach der letzten Seite soll es auf Seite "demography" weitergehen 
 +setPageOrder($random, 'demography');
 </code> </code>
  
de/create/functions/put.txt · Zuletzt geändert: 15.12.2023 12:11 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