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

Hallo,

ich habe vor ca. 8 Wochen meinen Fragebogen veröffentlicht, in welchem jeweils 1 von 5 verschiedenen Videos via Zufallsgenerator mit Urne abgespielt wird.

Auf einmal nach 390 Teilnehmern, werden die Videos und Bilder nicht mehr angezeigt und man kann den Fragebogen einfach durchklicken. Ich habe jedoch nichts an dem Code oder an dem Fragebogen geändert?

Können Sie mir helfen?

in SoSci Survey (dt.) by s203223 (120 points)
Bitte prüfen Sie zunächst, ob unter "Fragebogen zusammenstellen" -> "Fragebögen verwalten" evtl. unterschiedliche Versionen des Fragebogens existieren.

Wenn es daran nicht liegt, müsste ich Sie bitten, den Link zum Fragebogen zu posten. Das "kann den Fragebogen einfach durchklicken" klingt so, als würde die Prüfung auf vollständige Antworten nicht mehr funktionieren? Um welchen Fragetyp geht es da genau?
Danke für die Antwort. Es gibt nur einen Fragebogen, hier ist der Link: https://www.soscisurvey.de/mainstudychatbots/

Auf Seite 3 wurde bisher immer das Video abgespielt, nun leider nicht mehr. Auf den darauf folgenden Seiten waren Bilder zu sehen, nun auch nicht mehr.

Beim "durchklicken" habe ich mich falsch ausgedrückt, hier meinte ich nicht die Fragen, sondern, dass man auf die nächste Seite gelangt ohne das Video gesehen zu haben. Bisher war es so, dass der "Next" Button für die neue Seite erst erschienen ist, nachdem das Video fertig gespielt hatte.
Ich sehe auf Seite 3 nur den Text (V101), nichts was auf ein Video hindeuten würde. Was haben Sie denn auf Seite 3 genau an Inhalt? Welchen PHP-Code? Welche weiteren Elemente?

> Auf den darauf folgenden Seiten waren Bilder zu sehen, nun auch nicht mehr.

Auch schon auf Seite 4? Dort sehe ich nichts, was auf ein Bild hindeuten würde. Wie ist das Bild dort eingebunden? Mittels HTML- und/oder PHP-Code?
Die Videos und Bilder habe ich unter Bilder- und Mediendateien hochgeladen. Für jedes einzelne Video habe ich dann eine Textvariable mit HTML code erstellt. Für das erste Video (V102) beispielsweise sieht dieser so aus:


<div style="text-align: center; margin:80px 0">
<video width="512" height="288" controls controlsList="nodownload" id="stimulus">
  <source src="pro://1.Chatbot.mp4" type="video/mp4" />
</video>
</div>
 
 
<script type="text/javascript">
<!--
 
var video = document.getElementById("stimulus");
 
// Weiter-Knopf ausblenden
SoSciTools.attachEvent(window, "load", function(evt) {
  SoSciTools.submitButtonsHide();
});
// Weiter-Knopf am Ende des Videos wieder anzeigen
SoSciTools.attachEvent(stimulus, "ended", function(evt) {
  SoSciTools.submitButtonsDisplay();
});
 
// -->
</script> <br>

<p>
    <center>
    <font size="1"> Sources: https://designersvalley.com/logos/flying-airplane-logo-design-travel-and-tour-sign-2308; https://landbot.io; iMovie Toneffekte Einfach </font>
    </center>
</p>



Bei der Zusammenstellung des Fragebogens habe ich dann die Zufallsziehung mittels Urne mit PHP-Code auf Seite 3 so eingebaut:


urnDraw('videos', 'IV01', 'end');

$code = value('IV01_01');
if (value('IV01_01') == 1) {
  text('V102');
} elseif (value('IV01_01') == 2) {
  text('V202');
} elseif (value('IV01_01') == 3) {
  text('V302');
} elseif (value('IV01_01') == 4) {
  text('V402');
} elseif (value('IV01_01') == 5) {
  text('V502');
}



Auf Seite 4-9 ist der folgende PHP-Code eingebaut, damit ein Bild, als Erinnerung aus dem vorhin gezogenen Video anzeigt wird:


$code = value('IV01_01');
if (value('IV01_01') == 1) {
  html('<div style="text-align: center; margin: 40px 0" >
  <img src="pro://1.Chatbot.png" width="200px" height="320px" alt="Banner">
  <br>
  <font size="1"> Sources: https://designersvalley.com/logos/flying-airplane-logo-design-travel-and-tour-sign-2308; https://landbot.io</font>
  </div>
  <br> ');
} elseif (value('IV01_01') == 2) {
  html('<div style="text-align: center; margin: 40px 0" >
  <img src="pro://2.Chatbot.png" width="200px" height="320px" alt="Banner">
  <br>
  <font size="1"> Sources: https://tenor.com/view/businesswoman-joypixels-office-worker-woman-in-a-suit-office-woman-gif-17335211; https://landbot.io</font>
  </div>
  <br> ');
} elseif (value('IV01_01') == 3) {
  html('<div style="text-align: center; margin: 40px 0" >
  <img src="pro://3.Chatbot.png" width="200px" height="320px" alt="Banner">
  <br>
  <font size="1"> Sources: https://www.kalu-bremen.de/?page_id=67 & App ToonMe; https://landbot.io</font>
  </div>
  <br>');
} elseif (value('IV01_01') == 4) {
  html('<div style="text-align: center; margin: 40px 0" >
  <img src="pro://4.Chatbot.png" width="200px" height="320px" alt="Banner">
  <br>
  <font size="1"> Sources: https://differentimpulse.com/ai-amelia-siri-but-doctorate-psychology/; https://landbot.io</font>
  </div>
  <br> ');
} elseif (value('IV01_01') == 5) {
  html('<div style="text-align: center; margin: 40px 0" >
  <img src="pro://5.Chatbot.png" width="200px" height="320px" alt="Banner">
  <br>
  <font size="1"> Sources: https://www.kalu-bremen.de/?page_id=67; https://landbot.io</font>
  </div>
  <br> ');
}



Es ist jetzt ein sehr langer Text und Code aber ich hoffe das hilft. Bis gestern (390 Teilnehmer) hat das auch super funktioniert, nur jetzt werden die Videos und Bilder auf einmal nicht mehr angezeigt.
Ich würde das Problem in diesem Bereich vermuten:

$code = value('IV01_01');
if (value('IV01_01') == 1) {
  text('V102');
} elseif (value('IV01_01') == 2) {
  text('V202');
} elseif (value('IV01_01') == 3) {
  text('V302');
} elseif (value('IV01_01') == 4) {
  text('V402');
} elseif (value('IV01_01') == 5) {
  text('V502');
}

Könnten Sie hier bitte mal folgende Zeile ergänzen und prüfen, was angezeigt wird, denn Sie die Seite im Debug-Modus starten:

$code = value('IV01_01');
debug($code);

Prüfen Sie unter "Erhobene Daten" -> "Daten ansehen" bitte auch, was in der Variable IV01_01 in den letzten Interviews gespeichert wurde.

Und prüfen Sie bitte zudem, wenn Sie die Variable IV01_01 im Fragenkatalog öffenen (also nicht nur die Frage, sondern direkt die untergeordnete Variable/Item), was dort in den beiden Dropdowns eingestellt ist.
Vielen Dank.
In den Daten unter der Variable IV01_01 wurden ganz normal die Dateinamen der verschiedenen Videos gespeichert (beispielsweise 5 = pro://5.Chatbot.mp4, oder 1 = pro://1.Chatbot.mp4


Im Debug Modus wird folgendes angezeigt:

Debug information for $code:
$code = 5 = pro://5.Chatbot.mp4 (string)



[Information]    Interview started (new case no. 1289)
[Information]    Questionnaire qnr2 from project mainstudychatbots will be used
[Processing]    Create page 3 in questionnaire qnr2
[Content]    Create question V101
[Information]    Answer to IV01_01 = 5 = index.php?i=DVALLH32NKGN&file=1&rnd=2007
[Information]    This combination has been drawn from urn "videos" and is stored to "IV01": 5 = index.php?i=DVALLH32NKGN&file=1&rnd=8853
[Information]    value("IV01_01") = "5 = index.php?i=DVALLH32NKGN&file=1&rnd=8039"
debug()    Content: $code = 5 = index.php?i=DVALLH32NKGN&file=1&rnd=4596 (string)
[Information]    value("IV01_01") = "5 = index.php?i=DVALLH32NKGN&file=1&rnd=7345"
[Information]    value("IV01_01") = "5 = index.php?i=DVALLH32NKGN&file=1&rnd=5270"
[Information]    value("IV01_01") = "5 = index.php?i=DVALLH32NKGN&file=1&rnd=2747"
[Information]    value("IV01_01") = "5 = index.php?i=DVALLH32NKGN&file=1&rnd=6464"
[Information]    value("IV01_01") = "5 = index.php?i=DVALLH32NKGN&file=1&rnd=3608"

1 Answer

0 votes

In den Daten unter der Variable IV01_01 wurden ganz normal die Dateinamen der verschiedenen Videos gespeichert (beispielsweise 5 = pro://5.Chatbot.mp4, oder 1 = pro://1.Chatbot.mp4

Es scheint so, als hätte Sie die Urne mit Inhalten gefüllt, wie sie eigentlich für einen Zufallsgenerator gedacht sind. Nur im Zufallsgenerator ist vorgesehen, dass man mit dem Gleichheitszeiten einen Code hitnerlegt.

Wir haben am Wochenende die PHP-Version auf www.soscisurvey.de aktualisiert und diese ist ein wenig strenger. Bisher war es so, dass

5 == "5 = pro://5.Chatbot.mp4"

als "true" ausgewertet wurde, obwohl das natürlich nur bedingt sinnvoll ist. Sie dsaubere Lösung wäre ein Umstieg auf einen Zufallsgenerator oder die korrekte Definition der Urne nur mit Zahlen. Oder mit "Zahl, Dateiname", aber dann müssten Sie bei den "internen Variabeln" jeweils eine zweite für den Dateinnamen anlegen.

Als kurzfristigen Workaround kann ich Ihnen folgendes anbieten: Ändern Sie Ihren Code wie folgt. Bisher steht dort:

$code = value('IV01_01');
if (value('IV01_01') == 1) {
  text('V102');
} elseif (value('IV01_01') == 2) {
  text('V202');
} elseif (value('IV01_01') == 3) {
  text('V302');
} elseif (value('IV01_01') == 4) {
  text('V402');
} elseif (value('IV01_01') == 5) {
  text('V502');
}

Verwenden Sie intval(), um die führende Zahl aus Ihrer Ziehung zu verwenden. Und dann lesen Sie den Wert nicht in jeder Zeile erneut aus, sondern nutzen Sie das bisher ungenutzte $code.

$code = intval(value('IV01_01'));
if ($code == 1) {
  text('V102');
} elseif ($code == 2) {
  text('V202');
} elseif ($code == 3) {
  text('V302');
} elseif ($code == 4) {
  text('V402');
} elseif ($code == 5) {
  text('V502');
}

Dies muss bei den anderen Filtern natürlich entsprechend angepasst werden.

Es tut mir leid, dass Ihre Erhebung durch die Aktualisierung beeinträchtigt wurde. Allerdings hat die neue PHP-Version lediglich Fehler in der Fragebogen-Programmierung zu Tage gefördert -- nicht zuletzt weil die Urne da ein wenig anfällig ist, empfehlen wir schon seit Jahren die Verwendung des Zufallsgenerators.

by SoSci Survey (238k points)
Super vielen Dank für die Hilfe, es funktioniert nun mit dem Workaround wieder!
...