Willkommen im Online-Support von SoSci Survey.

Hier bekommen Sie schnelle und fundierte Antworten von anderen Projektleitern und direkt von SoSci Survey.

→ Eine Frage stellen


Welcome to the SoSci Survey online support.

Simply ask a question to quickly get answers from other professionals, and directly from SoSci Survey.

→ Ask a Question

0 votes

Sehr geehrte Damen und Herren,

ich habe folgendes Problem. Ich habe in meinem Experiment 4 Experimentalgruppen. Die Versuchspersonen werden mittels folgendem Code zufällig in die Bedingungen zugeteilt.

urnDraw('condition', 'IV01'); //Zuweisung in die Bedingungen

$zahl = value('IV01_01');  // Zufallzahl wurde von condition gezogen

if ($zahl == 1) 
{setPageOrder('ZGAN', 'MCA');}

elseif ($zahl == 2)
{setPageOrder('ZGAF', 'MCA');}

elseif ($zahl == 3)
{setPageOrder('ZGDN', 'MCA');}

elseif ($zahl == 4)
{setPageOrder('ZGDF', 'MCA');}

Soweit so gut. Der Code vereweist auf die jeweilige Seite (z.B ZGAN), welche mittels eines Zufallsgenerators 10 aus 30 Stimuli (Textbausteine) wählen soll. Zusätzlich sollen Fragen mit dem Material verbunden werden.

Allerdings habe ich das Problem, dass immer nur die 10 ersten Stimuli bzw. fragen angezeigt werden.

Hier der Code, der direkt unter dem Zufallsgenerator (dieser zieht 10 aus 30 Zettel) steht den ich verwende.

// loopPage(10) liefert eine Zahl von 0 bis 9 (eins mehr bei jeder Wiederholung)
$i = loopPage(10);  // Hier die Zahl der zu zeigenden Fragen eintragen

//ermittelt die Codes alle im Zufallsgenerator „ZG01“ gezogenen Zettel als Array
$codes_01 = valueList('ZG01');

// Die passende Fragen-Kennung erstellen und die Fragen mittels question() anzeigen
question(id('HF', $i + 1));
question(id('SE', $i + 1));

Ich bitte Sie aus meiner Misere zu helfen und bedanke mich schonmal.

Mit freundlichen Grüßen
David Urschler

closed with the note: Problem gelöst
in SoSci Survey (dt.) by s040171 (190 points)
closed by s040171

2 Answers

0 votes

Die Funktionen setPageOrder() und loopPage()sind nicht kombinierbar. Dies dürfte zumindest einen Teil des Problem erklären.

Allerdings habe ich das Problem, dass immer nur die 10 ersten Stimuli bzw. fragen angezeigt werden.

Das ist laut Ihrer Beschreibung das, was Sie gerne haben möchten ("welche mittels eines Zufallsgenerators 10 aus 30 Stimuli (Textbausteine) wählen soll")?! Könnten Sie die Frage vielleicht noch einmal konkretisieren?

Ich würde empfehlen, dass Sie das setPageOrder() weglassen und stattdessen direkt im Filter auf der ersten Seite die gewünschten Variablen setzen. Aber welche genau das sein werden, kann ich erst sagen, wenn ich die Problemstellung verstanden habe.

by SoSci Survey (228k points)
0 votes

Zunächst einmal vielen Dank für Ihre Hilfe

Das Problem mit setPageOrder() und loopPage() hab ich gelöst, dass ich die Experimentalgruppen über Platzhalter variere, das funktioniert auch.

urnDraw('condition', 'IV01'); //Zuweisung in die Bedingungen

$zahl = value('IV01_01');  // Zufallzahl wurde von condition gezogen

// Platzhalter

// Close und Autonomy
if ($zahl == 1) 
replace('%time%', 'jetzt');
replace('%help%', 'erklärt Ihnen wie Sie zur Lösung kommen');

// Future und Autonomy
if ($zahl == 2)
replace('%time%', 'in einem Monat');
replace('%help%', 'erklärt Ihnen wie Sie zur Lösung kommen');


// Close und Dependency 
if ($zahl == 3)
replace('%time%', 'jetzt');
replace('%help%', 'gibt Ihnen nur die Lösung');

// Future und Dependency
if ($zahl == 4)
replace('%time%', 'in einem Montat');
replace('%help%', 'gibt Ihnen nur die Lösung');

Nun zu meinem Problem mit der zufälligen Auswahl. Ich möchte aus der Rubrik "HF" 10 von 30 Fragen zufällig auswählen. Dafür hab ich einen Zufallsgenerator (ZG01) erstellt der mir 10 aus 30 Zettel zieht.

Ich habe auf einer Seite den Zufallsgenerator platziert und darunter folgeden PHP-Code

// loopPage(10) liefert eine Zahl von 0 bis 9 (eins mehr bei jeder Wiederholung)

$i = loopPage(10);  // Hier die Zahl der zu zeigenden Fragen eintragen


//Auslesen der Zder Zettel aus „ZG01“ 
$code = value('ZG01').sprintf('%02d', $i + 0001);

if ($code == 1) 
{question('HF01');}

elseif ($code == 2) 
{question('HF02');}

elseif ($code == 3)
{question('HF03');}

elseif ($code == 4) 
{question('HF04');}

elseif ($code == 5) 
{question('HF05');}

elseif ($code == 6) 
{question('HF06');}

elseif ($code == 7) 
{question('HF07');}

elseif ($code == 8) 
{question('HF08');}

elseif ($code == 9) 
{question('HF09');}

elseif ($code == 10) 
{question('HF10');}

elseif ($code == 11) 
{question('HF11');}

elseif ($code == 12) 
{question('HF12');}

elseif($code == 13) 
{question('HF13');}

elseif ($code == 14) 
{question('HF14');}

elseif ($code == 15) 
{question('HF15');}

elseif ($code == 16) 
{question('HF16');}

elseif ($code == 17) 
{question('HF17');}

elseif ($code == 18) 
{question('HF18');}

elseif ($code == 19) 
{question('HF19');}

elseif ($code == 20) 
{question('HF20');}

elseif ($code == 21) 
{question('HF21');}

elseif ($code == 22) 
{question('HF22');}

elseif ($code == 23) 
{question('HF23');}

elseif ($code == 24) 
{question('HF24');}

elseif ($code == 25) 
{question('HF25');}

elseif ($code == 26) 
{question('HF26');}

elseif ($code == 27) 
{question('HF27');}

elseif ($code == 28) 
{question('HF28');}

elseif ($code == 29) 
{question('HF29');}

elseif ($code == 30) 
{question('HF30');}

Wenn ich ich diesen Code laufen lasse bekomme ich folgende Fehlermeldung.
Dieses Interview versuchte, auf Seite Nr. 3 (Kennung ) zu springen, die bei der Ausgabe der aktuellen Darstellung bereits verarbeitet wurde. Bitte überprüfen Sie, ob goToPage() eine Shcleife erzeugt oder ob Sie loopPage() verwenden, dabei aber auf einzelnen Seiten keinen Inhalt (Text oder Fragen) erstellen.

by s040171 (190 points)
edited by s040171
...