0 votes
in SoSci Survey (dt.) by s082188 (110 points)

Hallo,
bei der Erstellung meines Fragebogens habe ich folgendes Problem.
Ich möchte auf der ersten Seite Geschlecht und Geburtstag abfragen.
Je nachdem, was dort eingegeben wird, soll auf der 2. Seite dann ein Bild erscheinen (ich habe 4 verschiedene Bilder - 2 mit Frauen abgebildet und 2 mit Männern)
Jetzt wäre es zuerst mal wichtig, dass wenn weiblich angeklickt wird auf jeden Fall nur Frauenbilder gezeigt werden. Zusätzlich sollte, wenn der Geburtstag eine gerade Zahl ist, das eine Bild mit der Frau gezeigt werden und wenn der Geburtstag eine ungerade Zahl ist eben das andere Bild.
Das gleiche wäre dann für die Männer.
Bitte um Hilfe.
Danke und lg

1 Answer

0 votes
by SoSci Survey (304k points)

Nun, nehmen wir einmal an, dass der Geburtstag mit Variable AB01_01 und das Geschlecht mit Variable AB02 (1=weiblich) abgefragt wird, dann könnte der PHP-Code auf Seite 2 wie folgt aussehen:

if (value('AB02') == 1) {
  // Frauen
  if ((int)value('AB01_01') % 2 == 0) {
    // Gerade Zahl
    $bild = 'frau1.jpg';
  } else {
    // Ungerade Zahl
    $bild = 'frau2.jpg';
  }
} else {
  // Männer (und ggf.: keine Angabe)
  if ((int)value('AB01_01') % 2 == 0) {
    // Gerade Zahl
    $bild = 'mann1.jpg';
  } else {
    // Ungerade Zahl
    $bild = 'mann2.jpg';
  }
}
// Bild noch anzeigen
html('<div style="text-align: center"><img src="'.$bild.'" alt=""></div>');

Wobei ich vermute, dass Sie einfach nur eine Randomisierung brauchen - Sie könnten sich also auch vom Geburtstag unabhängig machen: Urnen für Teilgruppen I

by s082188 (110 points)
ok - wenn ich diesen Code kopiere und die Variablen anpasse zeigt er mir Warnungen an das % ein unerwartetes Element ist und hier vielleicht ein Semikolon oder Anführungszeichen fehlt. wo muss ich da noch was hinzufügen? Und generelle Frage - muss ich somit alle Bilder nach dem Code mal einfügen in den Fragebogen? sorry aber ich hab hier leider echt keinen Plan :) DANKE
by SoSci Survey (304k points)
Die Warnung können Sie ignorieren, der Code-Assistent von SoSci Survey kennt nur den Modulo-Operator (%) noch nicht.

Die Bilder dürfen Sie _nicht_ noch zusätzlich in den Fragebogen ziehen, sonst sehen sie alle und eines doppelt.
by s082188 (110 points)
ok aber muss ich die bilder in den code reinziehen? irgendwie funktioniert das noch nicht so ganz :) DANKE
by s082188 (110 points)
Hallo, ok es funktioniert jetzt - DANKE vielmals für die Hilfe! LG
by s082188 (110 points)
Sorry, noch eine Frage - weiter hinten im Fragebogen sollte nochmal eine unterscheidung stattfinden - es sollten somit wenn männlich angeklickt wurde beide männlichen Bilder angezeigt werden und wenn weiblich angeklickt wurde beide weiblichen. kann ich hier den gleichen code verwenden, nur etwas umändern? vorne klappt es jetzt perfekt! Hinten leider noch nicht...danke nochmal für die Hilfe
by s082188 (110 points)
hätte für hinten jetzt folgenden Code eingegeben
if (value('SD01') == 1) {
  // Frauen
    $bild = 'pro://Frau1.jpg' and 'pro://Frau2.jpg'
   else {
    // Männer
    $bild = 'pro://Mann1.jpg' and 'pro://Mann2.jpg'
  }}

// Bild noch anzeigen
html('<div style="text-align: center"><img src="'.$bild.'" alt=""></div>');
by SoSci Survey (304k points)
Nun - das "and" ist ein Bool'scher Operator, der nur wahr und falsch kennt. Wenn Sie auf beiden Seiten einen Text (String) verwenden, der nicht "0" ist, dann wird wahr dabei herauskommen. Aber keine Zwei Bilder.

Damit beide Bilder gezeigt werden, schrieben Sie einfach in den einen Zweig des Filters:

html('<div style="text-align: center">
  <img src="frau1.jpg" alt="">
  <img src="frau2.jpg" alt="">
</div>');

... und in den anderen Zweig dasselbe mit den Männer-Bildern. Das it der Variable $bild macht nur dann Sinn, wenn Sie viele Experimental-Konditionen haben und wenig HTML-Code. Das was Sie am Ende brauchen, ist genau andersherum.
by s082188 (110 points)
ok - mein Code sieht nun so aus:
if (value('SD01') == 1) {
  // Frauen
    html('<div style="text-align: center">
  <img src="pro://Frau1.jpg" alt="">
  <img src="pro://Frau2.jpg" alt="">
</div>');
   else {
    // Männer
   html('<div style="text-align: center">
  <img src="pro://Mann1.jpg" alt="">
  <img src="pro://Mann2.jpg" alt="">
</div>');
  }}

// Bild noch anzeigen
html('<div style="text-align: center"><img src="'.$bild.'" alt=""></div>');

funktioniert leider noch nicht - irgendwas zeigt er mir dann beim Test noch fehlerhaft an...
by SoSci Survey (304k points)
Die letzte Zeile ist jetzt überflüssig.
by s082188 (110 points)
jetzt zeigt er mir in der Testversion folgendes an:
Im PHP-Code trat ein Fehler auf.

Fehler im Fragebogen: syntax error, unexpected 'else' (T_ELSE)
Zeile: 7

PHP-Code

004   <img src="pro://Frau1.jpg" alt="">
005   <img src="pro://Frau2.jpg" alt="">
006 </div>');
007 else {
008     
009    html('<div style="text-align: center">
010   <img src="pro://Mann1.jpg" alt="">
by s082188 (110 points)
Hallo - hab bisschen experimentiert und jetzt klappt es!
Noch 2 letze Fragen: ich hääte gerne die Bilder beschriftet - geht das oder soll ich das Bild einfach schon beschriftet reingeben? ich muss nämlich zum Schluss 3 Fragen stellen wo entweder das eine bild oder das andere ausgewählt werden kann - hätte da jetzt einfach geren Bild A und Bild B damit sich die Leute auskennen. oder gibt es da eine einfachere Lösung?
zusätzlich - ist es hinten möglich die Bilder nebeneinander anzuzeigen?
Das sind wirklich meine letzten Fragen :) DANKE vielmals und lg
by SoSci Survey (304k points)
Eine einfachere Lösung? Klar! Verwenden Sie eine Frage vom Typ "horizontale Auswahl" bzw. zwei derselben (eine für Männer eine für Frauen) und tragen Sie als Itemtext für die Auswahloptionen einfach den HTML-Code für die Bilder ein. Via Filter können Sie dann die "richtige" Frage zeigen, je nach Geschlecht des Teilnehmers.

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

...