0 votes
in SoSci Survey (dt.) by s107888 (130 points)

Hallo,

ich habe vier Bildstimuli und möchte, dass die Probanden darauf gleichmäßig zugeteilt werden, also 4 Gruppen entstehen.
Nun habe ich mir dazu die Erklärung angeguckt, verstehe aber nicht ganz, wo sich dort meine 4 Bilder wiederfinden können. Ein Foto ist schon eingebettet, aber der Rest halt nicht...
Auch gibt es bei mir keine Kontrollgruppe, aber immer wenn ich die im Code rauslösche wird mir eine Fehlmeldung angezeigt...
Könnten Sie mir bitte helfen?
Den Zufallsgenerator habe ich schon für 1-4 angelegt.

Ich habe folgenden Code verwendet:

// Auslesen der numerischen Codes (1 bis 4)
$code = value('ZG01');
// Die Kontrollgruppe muss anders behandelt werden
if ($code == 4) {
// Kontrollgruppe - nichts anzeigen
} else {
// Die Beschriftung ist als Wertelabel hinterlegt - im Beispiel ist das der Bildname
$bild = value('ZG01', 'label');
// Das HTML-Tag image zeigt ein Bild an, der Dateiname wird mit src angegeben
html('

< div style="margin: 3em; text-align: center" >
 < img src="pro://Screenshot_gluecklich_neu.02.jpg" > (mein Foto)
< /div >

');
}

Viele Grüße und ich wünsche einen schönen Feiertag

1 Answer

0 votes
by s139847 (2.7k points)

Hallo,

Sie sind schon auf dem richtigen Weg, aber Ihnen fehlen noch die anderen if-Teile Ihrer Auswahl.

$code = value('ZG01');

if ($code == 1) {
// Bild 1
}elseif ($code == 2) {
// Bild 2
}elseif ($code == 3) {
// Bild 3
}elseif ($code == 4) {
// Bild 4
}

zwischen die geschweiften Klammern schreiben Sie dann immer den entsprechenden Code für ein Bild, den Sie oben auch schon haben, dann wird per Zufall eins der vier gleichverteilt angezeigt.

Viele Grüße

by s107888 (130 points)
Guten Tag,

vielen Dank für die Antwort!

Ich habe es eingegeben, aber leider wird mir immer noch eine Fehlmeldung angezeigt...
Stimmt es denn so mit dem Einsetzen?

$code = value('ZG01');
if (<img src="pro://Screenshot_gluecklich_neu.02.jpg"> == 1) {
// Bild 1
}elseif (<img src="pro://Screenshot_mixed_rand.jpg"> == 2) {
// Bild 2
}elseif (<img src="pro://Screenshot_traurig.jpg"> == 3) {
// Bild 3
}elseif (<img src="pro://Screenshot_neutral_neu.jpg"> == 4) {
// Bild 4
}

Viele Grüße
by s139847 (2.7k points)
Sie müssen $code stehen lassen und den <img> Teil da, wo //Bild 1 etc steht einfügen
by s107888 (130 points)
Huch...
An diesen Codes habe ich immer ganz schön zu knabbern, wie man merkt.
Danke für Ihre Geduld und hilfreichen Antworten, trotz des Feiertages!
by s107888 (130 points)
Ich hab mich zu früh gefreut, hab alles eingefügt und keine Fehlmeldung erhalten. Aber es wird auch kein Bild angezeigt leider...


$code = value('ZG01');
if ($code == 1) {
// <img src="pro://Screenshot_mixed_rand.jpg">
}elseif ($code == 2) {
// <img src="pro://Screenshot_gluecklich_neu.02.jpg">
}elseif ($code == 3) {
// <img src="pro://Screenshot_traurig.jpg">
}elseif ($code == 4) {
// <img src="pro://Screenshot_neutral_neu.jpg">
}

Und wenn ich die "//" wegnehme, steht da:

Fehler im Fragebogen: Befehl oder String (Text) nicht abgeschlossen

Hinter einem Befehl wie z.B. question() steht kein Strichpunkt oder
ein String (Text in Anführungszeichen) ist nicht abgeschlossen oder
im String selbst kommt ein Anführungszeichen vor, z.B. html('Mach's besser!'); – in diesem Fall stellen Sie dem Anführungszeichen einen Backslash (\) voran.
Möglicherweise stimmen die öffnenenden und schließenden geschweiften Klammern für Anweisungsblöcke auch nicht überein.
PHP-Code

001 namespace s2survey\questionnaire\environment;
002
003 $code = value('ZG01');
004 if ($code == 1) {
005 <img src="pro://Screenshot_mixed_rand.jpg">;
006 }elseif ($code == 2) {
007 <img src="pro://Screenshot_gluecklich_neu.02.jpg">;
008 }elseif ($code == 3) {

Was habe ich denn nun schon wieder falsch gemacht?
by s139847 (2.7k points)
ich habe Ihnen den Code jetzt geschrieben

$code = value('A105');
if ($code == 1) {
html('
 <img src="HIER IHR BILD 1">
');
}elseif  ($code == 2){
html('
 <img src="HIER IHR BILD 2">
');
}elseif  ($code == 3){
html('
 <img src="HIER IHR BILD 3">
');
}elseif  ($code == 4){
html('
 <img src="HIER IHR BILD 4">
');
}

gucken Sie bei Fragen bitte auch immer gerne im Wiki nach, da wird z.B. gezeigt, wie die richtige Einbindung von Bildern funktioniert.
by s107888 (130 points)
Es funktioniert, juchu!
Vielen vielen Dank, dass Sie sich die Zeit genommen haben!
Sie glauben gar nicht, wie sehr mir jetzt ein Stein vom Herzen fällt, dass die Bilder endlich angezeigt werden.

Das Wiki gucke ich mir auf jeden Fall nochmal an, ich bin ja leider auch noch nicht fertig...

Viele Grüße
by s107888 (130 points)
Hallo nochmal,

ich schreibe mal hier weiter, weil es Quasi eine Fortführung meiner Frage ist.
Zu meinen nun zufällig zugeteilten Bedingungen möchte ich, je nach Zuteilung, einen Frageblock zuordnen.
Also man sieht das Bild an, klickt auf "weiter" und muss dann 4 weitere Fragen (passend zum jeweils gezeigten Bild) beantworten.

Ich hab mir dazu nun verschiedenes auf den Hilfsseiten hier durchgelesen, bin mir aber nicht ganz sicher, was ich am besten verwenden kann, um meinen Plan umzusetzen.

Haben Sie einen Tipp für mich, was ich mir da am Besten nochmal genauer anschauen sollte?

Viele Grüße
by s139847 (2.7k points)
wenn Sie Ihre Seiten nicht noch durch eine andere Funktion randomisieren, würde ich am besten bei goToPage() (https://www.soscisurvey.de/help/doku.php/de:create:functions:gotopage) nachgucken.

Viele Grüße
by s107888 (130 points)
Hallo,

alles klar, habe ich gemacht. :)

Da die Probanden ja nach dem zufällig zugeteilten Bild zu den dazugehörigen Fragen sollen, habe ich das dementsprechend formuliert mit "ZG01_1", "ZG01_2", etc. Da ja die restlichen Fragen (zu den anderen Bildern zugehörig) übersprungen werden sollen, habe ich die mit einem Komma getrennt angegeben. Am Ende sollen alle praktisch wieder auf Seite 11 landen.
Den Code habe ich in einem extra PHP Fenster, unter den Code mit der Zufallszuteilung, gesetzt.

Nun meine Frage: Ergibt das im groben so Sinn? Denn funktionieren tut es leider nicht...


if (value('ZG01_1') == 8,9,10) {
  goToPage('next');
}

if (value('ZG01_2') == 7,9,10) {
  goToPage('8');
}

if (value('ZG01_3') == 7,8,10) {
  goToPage('9');
}

if (value('ZG01_4') == 7,8,9) {
  goToPage('10');
}

Liebe Grüße
by s139847 (2.7k points)
Hallo,

vom Ansatz her richtig, aber leider stimmt der PHP Syntax überhaupt nicht. Wenn Sie wirklich noch nie programmiert haben, schauen Sie bitte hier (https://www.soscisurvey.de/help/doku.php/de:create:php) etwas nach oder in den Tutorials, die auf der Seite unten verlinkt wird, die Probleme werden sich ja nur jedes Stückchen Code, das Sie brauchen, weiterziehen.

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

...