Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende ÜberarbeitungNächste ÜberarbeitungBeide Seiten der Revision | ||
de:create:functions:put [27.05.2016 15:05] – Neues Beispiel: Array-Ränge speichern admin | de:create:functions:put [19.09.2018 13:45] – [Beispiel: Randomisierung I] admin | ||
---|---|---|---|
Zeile 16: | Zeile 16: | ||
- | ===== Beispiel: Randomisierung I ===== | ||
- | Falls Sie bei einer [[:de: | + | ===== Beispiel: Berechnungen ===== |
- | Das folgende | + | Das folgenden |
<code php> | <code php> | ||
- | // Eine ganze Zahl zwischen 1 und 2 würfeln | + | $sum01 = valueSum(' |
- | $zahl = random(1,2); | + | $sum02 = valueSum(' |
- | // Die gewürfelte Zahl im Datensatz abspeichern | + | $index = $sum01 + $sum02; |
- | put('IV01_01', $zahl); | + | put('AB03_01', $index); |
- | // Und davon abhängig Textbaustein " | + | </code> |
- | if ($zahl == 1) { | + | |
- | | + | Die Ermittlung eines Skalenindex schon während der Befragung ist natürlich vor allem dann sinnvoll, wenn man dem Teilnehmer das Ergebnis mitteilen möchte |
+ | |||
+ | <code php> | ||
+ | if (value(' | ||
+ | | ||
+ | } elseif (value(' | ||
+ | question(' | ||
} else { | } else { | ||
- | | + | |
} | } | ||
</ | </ | ||
- | ===== Beispiel: Randomisierung | + | ===== Beispiel: Codes transformieren ===== |
+ | |||
+ | SoSci Survey speichert für Skalen jeweils positive Antwortcodes ([[: | ||
+ | |||
+ | **Hinweis: | ||
+ | |||
+ | **Hinweis: | ||
+ | |||
+ | Der folgende Code transformiert die Antworten für das Skalenitem SK01_01 vom Wertebereich 1 bis 5 in den Bereich -2 bis +2. Falls für das Skalenitem keine gültige Antwort gegeben wurde (Item ausgelassen oder eine Ausweichoption gewählt), wird im Datensatz kein Wert gespeichert. Der PHP-Code wird auf der Seite nach Frage SK01 platziert (vgl. Hinweise zu '' | ||
+ | |||
+ | Voraussetzung ist, dass vorab eine interne Variable SK02_01 angelegt wurde (s. [[# | ||
+ | |||
+ | <code php> | ||
+ | $original = value(' | ||
+ | // Nur gültige Werte (>0) speichern | ||
+ | if ($original > 0) { | ||
+ | put(' | ||
+ | } else { | ||
+ | put(' | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | Der PHP-Code lässt sich auch kürzer (aber weniger übersichtlich) formulieren: | ||
+ | |||
+ | <code php> | ||
+ | $org = value(' | ||
+ | put(' | ||
+ | </ | ||
+ | |||
+ | Falls diese Transformation für alle Items der Skala SK01 vorgenommen werden sollen (und hinreichend interne Variablen in SK02 angelegt wurden), erledigt folgende [[: | ||
+ | |||
+ | <code php> | ||
+ | $items = getItems(' | ||
+ | foreach ($items as $item) { | ||
+ | $original = value(id(' | ||
+ | if ($original > 0) { | ||
+ | put(id(' | ||
+ | } else { | ||
+ | put(id(' | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===== Beispiel: Komplexer Filter ===== | ||
+ | |||
+ | Das folgende Beispiel ist einem Fragebogen entnommen, der an mehreren Stellen unterschiedliche Fragen für Neukunden und Bestandskunden zeigt. Ein Neukunde zeichnet sich dadurch aus, dass er früher noch nichts gekauft hat (Antwort 1 bei Auswahlfrage " | ||
+ | |||
+ | Natürlich könnte man den [[: | ||
+ | |||
+ | <code php> | ||
+ | if ((value(' | ||
+ | put(' | ||
+ | } else { | ||
+ | put(' | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | Den gespeicherten Code kann man auf späteren Seiten unproblematisch für Filter verwenden. | ||
+ | |||
+ | <code php> | ||
+ | if (value(' | ||
+ | question(' | ||
+ | } else { | ||
+ | question(' | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | ===== Beispiel: Randomisierung | ||
Wenn Sie mittels '' | Wenn Sie mittels '' | ||
Zeile 62: | Zeile 137: | ||
for ($i=0; $i< | for ($i=0; $i< | ||
// Kennung der internen Variable aus Frage-Kennung plus Index erstellen | // Kennung der internen Variable aus Frage-Kennung plus Index erstellen | ||
- | $id = ' | + | $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 68: | Zeile 143: | ||
</ | </ | ||
- | Der Befehl | + | Zum Index '' |
Oftmals ist es sinnvoller, die Ränge der Elemente zu speichern. Etwa wenn '' | Oftmals ist es sinnvoller, die Ränge der Elemente zu speichern. Etwa wenn '' | ||
Zeile 75: | Zeile 150: | ||
for ($i=0; $i< | for ($i=0; $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 = ' | + | $id = id('IV01', $elements[$i]); |
// Hier den Rang speichern | // Hier den Rang speichern | ||
put($id, $i + 1); | put($id, $i + 1); | ||
Zeile 92: | Zeile 167: | ||
for ($i=0; $i< | for ($i=0; $i< | ||
// Rang speichern wie oben | // Rang speichern wie oben | ||
- | $id = ' | + | $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 98: | Zeile 173: | ||
} | } | ||
// Neue Seitenabfolge setzen | // Neue Seitenabfolge setzen | ||
- | setPageOrder($random); | + | // Nach der letzten Seite soll es auf Seite " |
+ | setPageOrder($random, ' | ||
</ | </ | ||
+ | ===== Beispiel: Randomisierung II ===== | ||
- | ===== Beispiel: Berechnungen ===== | + | Falls Sie bei einer [[:de: |
- | Das folgenden Beispiel geht davon aus, dass ein Konstrukt in zwei Skalen mit den Frage-Kennungen AB01 und AB02 erhoben wird -- und dass eine interne Variable AB03_01 angelegt wurde, um den [[:de:general:indices|Skalenindex]] | + | **Wichtig: |
- | <code php> | + | Das folgende Beispiel geht davon aus, dass Sie eine interne Variable mit der Kennung " |
- | $sum01 = valueSum(' | + | |
- | $sum02 = valueSum(' | + | |
- | $index = $sum01 + $sum02; | + | |
- | put(' | + | |
- | </ | + | |
- | + | ||
- | Die Ermittlung eines Skalenindex schon während | + | |
<code php> | <code php> | ||
- | if (value(' | + | // Eine ganze Zahl zwischen 1 und 2 würfeln |
- | | + | $zahl = random(1,2); |
- | } elseif | + | // Die gewürfelte Zahl im Datensatz abspeichern |
- | | + | put('IV01_01', $zahl); |
+ | // Und davon abhängig Textbaustein " | ||
+ | if ($zahl == 1) { | ||
+ | | ||
} else { | } else { | ||
- | | + | |
- | } | + | |
- | </ | + | |
- | + | ||
- | + | ||
- | ===== Beispiel: Komplexer Filter ===== | + | |
- | + | ||
- | Das folgende Beispiel ist einem Fragebogen entnommen, der an mehreren Stellen unterschiedliche Fragen für Neukunden und Bestandskunden zeigt. Ein Neukunde zeichnet sich dadurch aus, dass er früher noch nichts gekauft hat (Antwort 1 bei Auswahlfrage " | + | |
- | + | ||
- | Natürlich könnte man den [[: | + | |
- | + | ||
- | <code php> | + | |
- | if ((value(' | + | |
- | put(' | + | |
- | } else { | + | |
- | put(' | + | |
- | } | + | |
- | </ | + | |
- | + | ||
- | Den gespeicherten Code kann man auf späteren Seiten unproblematisch für Filter verwenden. | + | |
- | + | ||
- | <code php> | + | |
- | if (value(' | + | |
- | question(' | + | |
- | } else { | + | |
- | question(' | + | |
} | } | ||
</ | </ |