Guten Tag,
aufbauend auf meiner Frage hier (https://support.soscisurvey.de/?qa=22390/seitenkennungen-und-variablen-in-if-befehlen-benutzen) würde ich gerne wissen, ob es auch möglich wäre, nicht nur die Auswahl zu speichern, die als letzte getroffen wurde, sondern auch alle vorherigen.
Um das ganze kurz zusammen zu fassen:
In meinem Skript wird auf einer Seite ein Array randomisiert, das vier Blöcke (weitere Arrays), à 7 Seiten enthält, die auch randomisiert werden. Die Probanden können auf jeder der Seiten die Auswahl "ja" oder "nein" treffen. Meine Frage oben bezog sich darauf, dass ich (auf einer anderen Seite - die Reihenfolgen werden in einer global definierten variable gespeichert) in einer internen Variablen speichern wollte, welche "ja"-Antwort pro Block zeitlich als letzte getätigt wurde (weil die Reihenfolge der Seiten ja durcheinander ist, reicht deren Position im Skript dafür nicht aus). Wenn keine "ja"-Antwort getätigt wurde, dann sollte einfach ein "keiner" in die interne Variable geschrieben werden.
Das Skript, das ich mit der Hilfe des Supports erstellen konnte, sieht folgendermaßen aus:
$fragen = [
's1GU1' => 'SG01',
's2GU1' => 'SG02',
's3GU1' => 'SG03',
's4GU1' => 'SG16',
's5GU1' => 'SG04',
's6GU1' => 'SG21',
's7GU1' => 'SG22',
's1GU2' => 'SG05',
's2GU2' => 'SG06',
's3GU2' => 'SG07',
's4GU2' => 'SG08',
's5GU2' => 'SG09',
's6GU2' => 'SG25',
's7GU2' => 'SG23',
's1GU3' => 'SG10',
's2GU3' => 'SG11',
's3GU3' => 'SG17',
's4GU3' => 'SG18',
's5GU3' => 'SG19',
's6GU3' => 'SG26',
's7GU3' => 'SG27',
's1GU4' => 'SG12',
's2GU4' => 'SG13',
's3GU4' => 'SG20',
's4GU4' => 'SG14',
's5GU4' => 'SG15',
's6GU4' => 'SG28',
's7GU4' => 'SG24',
];
put('IV08_01', -1);
put('IV08_02', -1);
put('IV08_03', -1);
put('IV08_04', -1);
foreach ($Seq_GUNeu as $block => $pages) {
foreach ($pages as $pos => $pageID) {
$frage = $fragen[$pageID];
if (value($frage) == 1) {
$saveID = id('IV08', $block);
put($saveID, $pageID);
}
}
}
//Speicherung der Codierung der Position für Block 1
if( (value('IV08_01') == 's1GU1')
) {
put('IV08_05', 1);
put('IV08_09', 'Distraktor 1');
}
if( (value('IV08_01') == 's2GU1')
) {
put('IV08_05', 2);
put('IV08_09', 'Distraktor 2');
}
if( (value('IV08_01') == 's3GU1')
) {
put('IV08_05', 3);
put('IV08_09', 'Distraktor 3');
}
if( (value('IV08_01') == 's4GU1')
) {
put('IV08_05', 4);
put('IV08_09', 'Distraktor 4');
}
if( (value('IV08_01') == 's5GU1')
) {
put('IV08_05', 5);
put('IV08_09', 'Distraktor 5');
}
if( (value('IV08_01') == 's6GU1')
) {
put('IV08_05', 6);
put('IV08_09', 'Target 1');
}
if( (value('IV08_01') == 's7GU1')
) {
put('IV08_05', 7);
put('IV08_09', 'Target 2');
}
if( (value('IV08_01') == -1)
) {
put('IV08_05', -1);
put('IV08_09', 'Keiner');
}
//speicherung der Codierung der Position für Block 2
if( (value('IV08_02') == 's1GU2')
) {
put('IV08_06', 1);
put('IV08_10', 'Distraktor 1');
}
if( (value('IV08_02') == 's2GU2')
) {
put('IV08_06', 2);
put('IV08_10', 'Distraktor 2');
}
if( (value('IV08_02') == 's3GU2')
) {
put('IV08_06', 3);
put('IV08_10', 'Distraktor 3');
}
if( (value('IV08_02') == 's4GU2')
) {
put('IV08_06', 4);
put('IV08_10', 'Distraktor 4');
}
if( (value('IV08_02') == 's5GU2')
) {
put('IV08_06', 5);
put('IV08_10', 'Distraktor 5');
}
if( (value('IV08_02') == 's6GU2')
) {
put('IV08_06', 6);
put('IV08_10', 'Target 1');
}
if( (value('IV08_02') == 's7GU2')
) {
put('IV08_06', 7);
put('IV08_10', 'Target 2');
}
if( (value('IV08_02') == -1)
) {
put('IV08_06', -1);
put('IV08_10', 'Keiner');
}
//speicherung der Codierung der Position für Block 3
if( (value('IV08_03') == 's1GU1')
) {
put('IV08_07', 1);
put('IV08_11', 'Distraktor 1');
}
if( (value('IV08_03') == 's2GU3')
) {
put('IV08_07', 2);
put('IV08_11', 'Distraktor 2');
}
if( (value('IV08_03') == 's3GU3')
) {
put('IV08_07', 3);
put('IV08_11', 'Distraktor 3');
}
if( (value('IV08_03') == 's4GU3')
) {
put('IV08_07', 4);
put('IV08_11', 'Distraktor 4');
}
if( (value('IV08_03') == 's5GU3')
) {
put('IV08_07', 5);
put('IV08_11', 'Distraktor 5');
}
if( (value('IV08_03') == 's6GU3')
) {
put('IV08_07', 6);
put('IV08_11', 'Target 1');
}
if( (value('IV08_03') == 's7GU3')
) {
put('IV08_07', 7);
put('IV08_11', 'Target 2');
}
if( (value('IV08_03') == -1)
) {
put('IV08_07', -1);
put('IV08_11', 'Keiner');
}
//speicherung der Codierung der Position für Block 4
if( (value('IV08_04') == 's1GU4')
) {
put('IV08_08', 1);
put('IV08_12', 'Distraktor 1');
}
if( (value('IV08_04') == 's2GU4')
) {
put('IV08_08', 2);
put('IV08_12', 'Distraktor 2');
}
if( (value('IV08_04') == 's3GU4')
) {
put('IV08_08', 3);
put('IV08_12', 'Distraktor 3');
}
if( (value('IV08_04') == 's4GU4')
) {
put('IV08_08', 4);
put('IV08_12', 'Distraktor 4');
}
if( (value('IV08_04') == 's5GU4')
) {
put('IV08_08', 5);
put('IV08_12', 'Distraktor 5');
}
if( (value('IV08_04') == 's6GU4')
) {
put('IV08_08', 6);
put('IV08_12', 'Target 1');
}
if( (value('IV08_04') == 's7GU4')
) {
put('IV08_08', 7);
put('IV08_12', 'Target 2');
}
if( (value('IV08_04') == -1)
) {
put('IV08_08', -1);
put('IV08_12', 'Keiner');
}
}
Ich brauche für die Auswertung der Daten nun aber auch mögliche "ja"-Auswahlen, die zuvor getroffen wurden. Ein Teilnehmer kann ja nur auf einer der sieben Seiten "ja" sagen, aber auch insgesamt zwei Mal oder sogar auf allen Seiten "ja" ankreuzen. Das würde ich ebenfalls gerne in eine (neue) interne Variable schreiben, und zwar in der Reihenfolge, in der diese "ja"-Auswahlen getätigt wurden. Um das verständlicher zu machen vielleicht ein Beispiel: Wenn die Blöcke nach der Randomisierung folgende Reihenfolge haben:
Block 2
Block 1
Block 4
Block 3
und die Seiten in Block 2 dann z.B. so vorliegen:
S3, S2, S7, S5, S1, S4, S6
könnte der Teilnehmer ja z.B. auf Seite 3, "nein" auswählen, auf Seite 2 ebenfalls. Auf Seite 7 würde er dann "ja" sagen, auf Seite 5 wieder "nein", auf Seite 1 und 4 wieder "ja" und auf Seite 6 wieder "nein"
S3 - nein
S2 - nein
S7 - ja
S5 - nein
S1 - ja
S4 - ja
S6 - nein
Dann würde im Augenblick gespeichert werden, dass Seite 4 als letztes mit "ja" beantwortet wurde. Das Programm würde mir dann die Seitenkennung "S4GU2" (s. Skript) raussuchen und in meine interne Variable eine 4 schreiben. Ich hätte aber gerne, dass es eben auch Seite 1 erfasst und mir als nächstes eine 1 aufschreibt (weil das die vorletzte Antwort war) und danach auch noch die Seite 7 mit einer 7 (weil dies die erste "ja"-Antwort war). Analog soll das mit allen "ja"-Antworten passieren und dann natürlich für alle Blöcke.
Wie muss das Skript dafür angepasst werden?
Ich hoffe ich konnte verständlich machen, was mein Anliegen ist.
Liebe Grüße und vielen Dank im Voraus!