0 votes
in SoSci Survey (dt.) by s040171 (190 points)

Liebes Team,

ich hab folgendes Anliegen, über folgenden Code wähle ich meine Stimuli zufällig aus und möchte danach mehrer Fragen erheben.

Hier der 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“ 
    $zettel = 'ZG01'.sprintf('%02d', $i + 1);
    $code = value($zettel, 'label');
    
    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');}

Ich möchte jetzt bei {question('HF01');} noch weitere Fragen hinzufügen, allerdings bekomme ich immer eine Fehlermeldung wenn ich die Fragen:

a) direkt verknüpfe mittels {question('HF01'), {question('SE01');}

b) wenn ich eine logischen Operator einsetze: {question('HF01' && 'SE01');}

Momentan bin ich mit meinem Latein leider am Ende. Ich hoffe Sie können mir hier weiterhelfen.

Mit freundlichen Grüßen
David

2 Answers

0 votes
by SoSci Survey (302k points)

Die geschweiften Klammern "umklammern" einde oder merhere Anweisungen. Wenn ich Ihren Code ein wenig umformatiere ...

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

... ist die Syntax vermutlich nacheliegender:

if ($code == 1) {
  question('HF01');
  question('SE01');
}
elseif ($code == 2) {
  question('HF02');
  question('SE02');
}

Bei so vielen Bedingungen könnten Sie auch überlegen, das IF-ELSE durch eine dynamisch generierte Kennung zu ersetzen:

$i = loopPage(10);  // Hier die Zahl der zu zeigenden Fragen eintragen
$zettel = 'ZG01x'.sprintf('%02d', $i + 1);
$code = value($zettel, 'label');
question(id('HF', $code));
question(id('SE', $code));

Spontan fällt mir noch folgende Zeile auf. Dort fehlt m.E. ein "x" vor dem sprintf():

$zettel = 'ZG01x'.sprintf('%02d', $i + 1);
0 votes
by s040171 (190 points)

Liebes Team,

zunächst einmal vielen Dank für die super schnelle und geniale Lösung.

Nur kurz zur Zeile

  $zettel = 'ZG01'.sprintf('%02d', $i + 1);

Hier hab ich zwar kein "x" hinzugefügt, funktioniert aber trotzdem.

Vielen Dank nochmal und gemütliche Weihnachten.

David

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

...