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 Soscisurvey-Team,
ich bearbeite gerade einen Fragebogen, bei dem 222 Bilder nacheinander in zufälliger Reihenfolge präsentiert werden und auf einer Skala bewertet werden sollen. Jede Person durchläuft die 222 Bilder zweimal jeweils mit unterschiedlichen Ratingskalen. Der Fragebogen ist so angelegt, dass eine Seite 222 geloopt wird und bei jedem Durchgang eine zufällige Zahl aus einem Array gezogen wird. Dieser Zahl wird dann mithilfe einer selbstgeschriebenen Funktion ein Bild und ein Item zugeordnet. Diese Zuordnungsfunktion ist sehr lang (ca. 222 Zeilen), weshalb ich sie auch nicht direkt als PHP-Code einfügen konnte:

function display_pics_rs_b1($picture, $b){
if ($picture == 1) { html('<div class="spacing" style="text-align:center;">  <img src="0660.jpg"> </div>');(question("A101",$b));}
 elseif ($picture == 2) { html('<div class="spacing" style="text-align:center;">  <img src="1921.jpg"> </div>');(question("A102",$b));}
 elseif ($picture == 3) { html('<div class="spacing" style="text-align:center;">  <img src="1938.jpg"> </div>');(question("A103",$b));}
 elseif ($picture == 4) { html('<div class="spacing" style="text-align:center;">  <img src="1560.jpg"> </div>');(question("A104",$b));}
 elseif ($picture == 5) { html('<div class="spacing" style="text-align:center;">  <img src="1972.jpg"> </div>');(question("A105",$b));}
 elseif ($picture == 6) { html('<div class="spacing" style="text-align:center;">  <img src="2111.jpg"> </div>');(question("A106",$b));}
 elseif ($picture == 7) { html('<div class="spacing" style="text-align:center;">  <img src="0076.jpg"> </div>');(question("A107",$b));}
 elseif ($picture == 8) { html('<div class="spacing" style="text-align:center;">  <img src="0768.jpg"> </div>');(question("A108",$b));}
 elseif ($picture == 9) { html('<div class="spacing" style="text-align:center;">  <img src="0164.jpg"> </div>');(question("A109",$b));}
 elseif ($picture == 10) { html('<div class="spacing" style="text-align:center;">  <img src="0480.jpg"> </div>');(question("A110",$b));}
 elseif ($picture == 11) { html('<div class="spacing" style="text-align:center;">  <img src="1888.jpg"> </div>');(question("A111",$b));}
 elseif ($picture == 12) { html('<div class="spacing" style="text-align:center;">  <img src="1990.jpg"> </div>');(question("A112",$b));}
 elseif ($picture == 13) { html('<div class="spacing" style="text-align:center;">  <img src="1202.jpg"> </div>');(question("A113",$b));}
 elseif ($picture == 14) { html('<div class="spacing" style="text-align:center;">  <img src="0498.jpg"> </div>');(question("A114",$b));}
 elseif ($picture == 15) { html('<div class="spacing" style="text-align:center;">  <img src="1246.jpg"> </div>');(question("A115",$b));}
 elseif ($picture == 16) { html('<div class="spacing" style="text-align:center;">  <img src="1937.jpg"> </div>');(question("A116",$b));}
 elseif ($picture == 17) { html('<div class="spacing" style="text-align:center;">  <img src="1827.jpg"> </div>');(question("A117",$b));}
 elseif ($picture == 18) { html('<div class="spacing" style="text-align:center;">  <img src="1863.jpg"> </div>');(question("A118",$b));}
 elseif ($picture == 19) { html('<div class="spacing" style="text-align:center;">  <img src="0046.jpg"> </div>');(question("A119",$b));}
 elseif ($picture == 20) { html('<div class="spacing" style="text-align:center;">  <img src="0467.jpg"> </div>');(question("A120",$b));}
 elseif ($picture == 21) { html('<div class="spacing" style="text-align:center;">  <img src="1581.jpg"> </div>');(question("A121",$b));}
 elseif ($picture == 22) { html('<div class="spacing" style="text-align:center;">  <img src="0879.jpg"> </div>');(question("A122",$b));}
 elseif ($picture == 23) { html('<div class="spacing" style="text-align:center;">  <img src="2155.jpg"> </div>');(question("A123",$b));}
 elseif ($picture == 24) { html('<div class="spacing" style="text-align:center;">  <img src="1071.jpg"> </div>');(question("A124",$b));}
 elseif ($picture == 25) { html('<div class="spacing" style="text-align:center;">  <img src="1366.jpg"> </div>');(question("A125",$b));}
 elseif ($picture == 26) { html('<div class="spacing" style="text-align:center;">  <img src="0567.jpg"> </div>');(question("A126",$b));}
 elseif ($picture == 27) { html('<div class="spacing" style="text-align:center;">  <img src="2025.jpg"> </div>');(question("A127",$b));}
 elseif ($picture == 28) { html('<div class="spacing" style="text-align:center;">  <img src="1312.jpg"> </div>');(question("A128",$b));}
 

usw.

Folgendes Problem taucht auf:
Wenn man den Fragebogen startet, erscheint manchmal nur ein weißer Bildschirm (keine Fehlermeldung), manchmal funktioniert es. Aktualisiert man die Seite, geht es manchmal weiter, manchmal nicht. Die Items sind so eingerichtet, dass nachgehakt wird, wenn eines davon nicht beantwortet wurde. Tritt dieser Fall ein und es wird nachgehakt, erscheint wieder der weiße Bildschirm und der Fragebogen lässt sich nicht weiter bearbeiten.
Woran kann das liegen? (Das Problem konnte schon auf mehreren Computern repliziert werden)

Ich würde mich sehr freuen, wenn mir hier jemand helfen könnte!

ago in SoSci Survey (dt.) by s145466 (110 points)

1 Answer

0 votes

Jede Person durchläuft die 222 Bilder zweimal

Sind Sie sicher, dass das mit den Menschenrechten vereinbar ist?

Wenn man den Fragebogen startet, erscheint manchmal nur ein weißer Bildschirm (keine Fehlermeldung), manchmal funktioniert es.

Bitte starten Sie mal im Debug-Modus und prüfen Sie die Debug-Information. Damit sollte sich das Problem eingrenzen lassen.

Denkbare Fehlerquellen sind z.B. eine Speicher-Überschreitung (gleiche ich hier nicht) oder ein vergessenes Anführungszeichen in einer Zeile.

Ich persönlich würde dringend (!) dazu raten, die Liste mit Bildern in ein Array zu schreiben, damit lässt sich die Länge und Komplexität des Codes massiv reduzieren.

$bilder = [
  1 => ['0660.jpg', 'A101'],
  2 => ['1921.jpg', 'A102'],
  // u.s.w.
];

html(
  '<div class="spacing" style="text-align:center;"><img src="'.$bilder[$picture][0].'"></div>'
);
question($bilder[$picture][1]);

Das Array kann man mit der Excel-Funktion VERKETTEN) ziemlich schnell aus einer Tabelle erstellen.

ago by SoSci Survey (198k points)
...