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

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

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

2 Answers

0 votes

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);
by SoSci Survey (266k points)
0 votes

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

by s040171 (190 points)
...