0 votes
in SoSci Survey (dt.) by s128730 (120 points)

Ich würde gern eine Auswahl (Frage) unterhalb eines Bildes präsentieren.
Die entsprechenden Bilder habe ich bereits in SoSciSurvey hochgeladen und einen PHP-Code auf der jeweiligen Fragebogen-Seite implementiert, um verschiedene Bilder - je nach Randomisierung - anzeigen zu lassen.
Dazu habe ich außerdem innerhalb des Fragenkatalogs für die jeweilige Fragebogen-Seite bereits 5 Auswahl-Fragen erstellt, welche zu dem passenden Bild dargeboten werden (mit PHP-Code).
Nun frage ich mich, wie ich die Auswahl unterhalb des Bildes präsentieren kann, denn unter "Fragebogen zusammenstellen" kann ich nicht einfach die Reihenfolge herumschieben, dort wird nur der PHP-Code angezeigt, die Fragen nur unter "Fragenkatalog".

Leider konnte ich dafür bisher keine Lösung finden und hoffe auf Hilfe, wie das zu bewerkstelligen wäre. :)
Danke im Voraus!

1 Answer

0 votes
by SoSci Survey (308k points)

Nun frage ich mich, wie ich die Auswahl unterhalb des Bildes präsentieren kann, denn unter "Fragebogen zusammenstellen" kann ich nicht einfach die Reihenfolge herumschieben, dort wird nur der PHP-Code angezeigt, die Fragen nur unter "Fragenkatalog".

Wenn Sie eine Frage mitten im PHP-Code zwischen anderen Ausgaben anzeigen möchten, gibt es zwei Lösungen:

  1. Sie können den PHP-Code in aller Regel in zwei Blöcke trennen und die Frage dazwischen platzieren - aber es geht noch einfacher.
  2. Sie können Sie Frage mittels question() an geeigneter Stelle im PHP-Code einbinden. Aber Ziehen Sie sie dann bitte nicht (!) zusätzlich in die Fragebogen-Seite.
by s128730 (120 points)
Ich habe nun folgenden PHP-Code erstellt.

if (value('M106') == 1) { // vegetarisch
    $img = 'Veggie1.png';
  question('M102');
} elseif (value('M106') == 2) { // umwelt
    $img = 'Umwelt1.png';
    question('M104');
} elseif (value('M106') == 3) { // fitness
    $img = 'Fitness1.png';
    question('M101');
} elseif (value('M106') == 4) { // gourmet
    $img = 'Gourmet1.png';
    question('M103');
} elseif (value('M106') == 5) { // kontrolle
    $img = 'Kontrolle1.png';
    question('M105');
}

html('
<p style="text-align: center">
    <img src='.$img.' style="max-width: 100%; max-height: 400px">
</p>
');

Allerdings wird die Auswahl immer noch über dem Bild angezeigt, obwohl die question() im Code nach dem img kommt.
Müsste ich den Code nochmal anders schreiben oder einen Zusatz hinein schreiben, damit die Auswahl wirklich unter dem Bild präsentiert wird?
by SoSci Survey (308k points)
Die Ausgabe passiert dort, wo Sie das html() bzw. question() aufrufen. Und im Moment wird erst das question() und weiter unten das html() aufgerufen. Speichern Sie die Kennung der Frage also bitte auch erstmal in eine Variable, z.B.

$qst = 'M102';

Und am Ende des PHP-Code fügen Sie dann ein:

question($qst);
by s128730 (120 points)
Folgenden Code habe ich nun erstellt und versucht mich nach den gegebenen Hilfen zu richten.
Jetzt wird erst nur das Bild dargeboten, auf der nächsten Seite dann dasselbe Bild wieder mit der passenden Frage, diese steht jedoch immer noch über dem Bild.
Habe ich einen Fehler in der Platzierung der question() gemacht oder müsste ich es anders anordnen?
Die Idee ist ja eigentlich je nach Gruppe bei der Randomisierung Bild und die dazu passende Auswahl zuzuteilen und diese auf einer Seite zu präsentieren (dabei Bild oben, Auswahl unten).

$qst1 = 'M101';
$qst2 = 'M102';
$qst3 = 'M103';
$qst4 = 'M104';
$qst5 = 'M105';

if (value('M106') == 1) { // vegetarisch
    $img = 'Veggie1.png';
} elseif (value('M106') == 2) { // umwelt
    $img = 'Umwelt1.png';
} elseif (value('M106') == 3) { // fitness
    $img = 'Fitness1.png';
} elseif (value('M106') == 4) { // gourmet
    $img = 'Gourmet1.png';
} elseif (value('M106') == 5) { // kontrolle
    $img = 'Kontrolle1.png';
}


html('
<p style="text-align: center">
    <img src='.$img.' style="max-width: 100%; max-height: 400px">
</p>
');


if (value('M106') == 1) { // question($qst2);
} elseif (value('M106') == 2) { // question($qst4);
} elseif (value('M106') == 3) { // question($qst1);
} elseif (value('M106') == 4) { // question($qst3);
} elseif (value('M106') == 5) { // question($qst5);
}
by SoSci Survey (308k points)
Machbar, aber ein wenig arg kompliziert ;)

Was ich eigentlich sagen wollte:

if (value('M106') == 1) { // vegetarisch
    $img = 'Veggie1.png';
    $qst = 'M101';
} elseif (value('M106') == 2) { // umwelt
    $img = 'Umwelt1.png';
    $qst = 'M102';
}
// u.s.w.
html(...);
question($qst);
by s128730 (120 points)
Ah, vielen Dank für die gute und schnelle Hilfe!!! :)
So geht es wirklich viel einfacher und funktioniert top! :)

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

...