Ich habe ein Design mit
- Auswahlabfolge mit Reaktionszeiten -->
- Kurztraining -->
- Auswahlabfolge mit Reaktionszeiten.
Ich habe einen Timeout eingestellt von 12s pro Seite, aber nur bei den RZ Fragen.
Der erste Block von Fragen läuft gut. Da wird ein array $Fragen01 erstellt, Fragen werden randomisiert, ein 5x5 Loop läuft durch, alle werden einzeln angezeigt mit RZ. Alles gut.
Bei der Schulung können die TN vorwärts und zurück. Keine RZ. Läuft prima.
Der zweite Block von $Fragen02 verläuft wie der erste, wird aber manchmal angezeigt, manchmal nicht. ich habe das Gefühl, dass nach einer (un)bestimmten Gesamtzeit, der Fragebogen einfach abbricht und dies entweder direkt nach der Schulung oder einfach mitten drin. Komisch ist, dass es dann zur Zustimmungsseite springt, nicht zur letzten Seite, sodass ich das Gefühl habe, da könne etwas im Array $Fragen02 schief sein, aber ich finde da nichts. Alle Variablen existieren und sind richtig geschrieben.
Inzwischen habe ich den Loop im zweiten Teil tatsächlich aufgelöst, i.d.H., dass dies das Problem sei, aber selbst wenn ich alle 25 Stimuli einfach vermische und nacheinander anzeigen lasse, bricht es ab, und wie gesagt, anscheinend dann wenn zu lange am Schulungsteil verbracht wird (und hier möchte ich dass die TN wirklich Zeit haben).
Übrigens, die unabhängigen Teile $Fragen01, $Fragen02 und Schulung laufen ohne Probleme wenn sie isoliert getestet werden, sodass ich glaube der $Fragen01 Teil evtl. Auswirkungen auf $Fragen02 hat (bzw. die Tatsache, dass es zwei Abfolge mir RZ Blöcke gibt).
Gerne Abhilfe. ich bin kurz davor das ganze aufzugeben. Danke
Hier der Teil der nur isoliert funktioniert
<!-- Seite 27 -->
<page ident="Practice0101" intID="244">
<info>Practice01</info>
<question id="PR01" intID="245" />
<php intID="246"><![CDATA[
if (!isset($timeFB01)) {
$timeFB01 = time();
registerVariable($timeFB01); // Die Variable $time0 auch nach Ende des PHP-Codes aufbewahren
}
// Prüfung, ob die Zeit schon abgelaufen ist
// (z.B. weil der Teilnehmer die Seite neu geladen hat)
$timer = 210; // Der Teilnehmer hat 210 Sekunden Zeit zur Bearbeitung
if (time() >= $timeFB01 + $timer) {
goToPage('Falsch01');
}
// Die verbleibende Zeit muss auch dem JavaScript-Code bekannt gemacht werden
$remain = $timeFB01 + $timer - time();
replace('%remain%', $remain);
]]></php>
<postprocessing intID="247">
</postprocessing>
<php intID="248">
replace('%remain%', 12); // Der Teilnehmer hat 12 Sekunden für die Bearbeitung
</php>
<text id="XXcode" intID="249">
<spacing>default</spacing>
</text>
</page>
<!-- Seite 28 -->
<page ident="Wtr01" intID="93">
<info>Wtr01</info>
<php intID="94"><![CDATA[
if (value('PR01_21') == 2) {
goToPage('Richtig01'); // Antwort korrekt
} else {
goToPage('Falsch01'); // Antwort falsch
}
]]></php>
</page>
<!-- Seite 29 -->
<page ident="Richtig01" intID="74">
<info>Richtig01</info>
<text id="Richtig01" intID="89">
<spacing>default</spacing>
</text>
</page>
<!-- Seite 30 -->
<page ident="GotoPrac02" intID="259">
<info>GotoPractice02</info>
<php intID="260"><![CDATA[
{
goToPage('Practice02');
}
]]></php>
</page>
<!-- Seite 31 -->
<page ident="Falsch01" intID="91">
<info>Falsch01</info>
<text id="Falsch01" intID="95">
<spacing>default</spacing>
</text>
</page>
<!-- Seite 32 -->
<page ident="Practice02" intID="268">
<info>Practice02</info>
<php intID="270"><![CDATA[
if (!isset($timeFB02)) {
$timeFB02 = time();
registerVariable($timeFB02); // Die Variable $time0 auch nach Ende des PHP-Codes aufbewahren
}
// Prüfung, ob die Zeit schon abgelaufen ist
// (z.B. weil der Teilnehmer die Seite neu geladen hat)
$timer = 210; // Der Teilnehmer hat 210 Sekunden Zeit zur Bearbeitung
if (time() >= $timeFB02 + $timer) {
goToPage('Falsch02');
}
// Die verbleibende Zeit muss auch dem JavaScript-Code bekannt gemacht werden
$remain = $timeFB02 + $timer - time();
replace('%remain%', $remain);
]]></php>
<postprocessing intID="271">
</postprocessing>
<question id="RE02" intID="31" />
<php intID="272">
replace('%remain%', 12); // Der Teilnehmer hat 12 Sekunden für die Bearbeitung
</php>
<text id="XXcode" intID="273">
<spacing>default</spacing>
</text>
</page>
<!-- Seite 33 -->
<page ident="Wtr02" intID="96">
<info>Wtr02</info>
<php intID="97"><![CDATA[
if (value('RE02_23') == 1) {
goToPage('Richtig02'); // Antwort korrekt
} else {
goToPage('Falsch02'); // Antwort falsch
}
]]></php>
</page>
<!-- Seite 34 -->
<page ident="Richtig02" intID="278">
<info>Richtig02</info>
<text id="Richtig02" intID="20">
<spacing>default</spacing>
</text>
</page>
<!-- Seite 35 -->
<page ident="GotoPrac03" intID="283">
<info>GotoPractice03</info>
<php intID="284"><![CDATA[
{
goToPage('Practice03');
}
]]></php>
</page>
<!-- Seite 36 -->
<page ident="Falsch02" intID="285">
<info>Falsch02</info>
<text id="Falsch02" intID="21">
<spacing>default</spacing>
</text>
</page>
<!-- Seite 37 -->
<page ident="Practice03" intID="292">
<info>Practice03</info>
<question id="PR03" intID="90" />
<php intID="294"><![CDATA[
if (!isset($timeFB03)) {
$timeFB03 = time();
registerVariable($timeFB03); // Die Variable $time0 auch nach Ende des PHP-Codes aufbewahren
}
// Prüfung, ob die Zeit schon abgelaufen ist
// (z.B. weil der Teilnehmer die Seite neu geladen hat)
$timer = 210; // Der Teilnehmer hat 210 Sekunden Zeit zur Bearbeitung
if (time() >= $timeFB03 + $timer) {
goToPage('Falsch03');
}
// Die verbleibende Zeit muss auch dem JavaScript-Code bekannt gemacht werden
$remain = $timeFB03 + $timer - time();
replace('%remain%', $remain);
]]></php>
<postprocessing intID="295">
</postprocessing>
<php intID="296">
replace('%remain%', 12); // Der Teilnehmer hat 12 Sekunden für die Bearbeitung
</php>
<text id="XXcode" intID="297">
<spacing>default</spacing>
</text>
</page>
<!-- Seite 38 -->
<page ident="Wtr03" intID="98">
<info>Wtr03</info>
<php intID="99"><![CDATA[
if (value('PR03_21') == 2) {
goToPage('Richtig03'); // Antwort korrekt
} else {
goToPage('Falsch03'); // Antwort falsch
}
]]></php>
</page>
<!-- Seite 39 -->
<page ident="Richtig03" intID="302">
<info>Richtig03</info>
<text id="Richtig03" intID="92">
<spacing>default</spacing>
</text>
</page>
<!-- Seite 40 -->
<page ident="GotoPrac04" intID="307">
<info>GotoPractice04</info>
<php intID="308"><![CDATA[
{
goToPage('Practice04');
}
]]></php>
</page>
<!-- Seite 41 -->
<page ident="Falsch03" intID="309">
<info>Falsch03</info>
<text id="Falsch03" intID="75">
<spacing>default</spacing>
</text>
</page>
<!-- Seite 42 -->
<page ident="Practice04" intID="316">
<info>Practice04</info>
<php intID="318"><![CDATA[
if (!isset($timeFB04)) {
$timeFB04 = time();
registerVariable($timeFB04); // Die Variable $time0 auch nach Ende des PHP-Codes aufbewahren
}
// Prüfung, ob die Zeit schon abgelaufen ist
// (z.B. weil der Teilnehmer die Seite neu geladen hat)
$timer = 210; // Der Teilnehmer hat 210 Sekunden Zeit zur Bearbeitung
if (time() >= $timeFB04 + $timer) {
goToPage('Falsch04');
}
// Die verbleibende Zeit muss auch dem JavaScript-Code bekannt gemacht werden
$remain = $timeFB04 + $timer - time();
replace('%remain%', $remain);
]]></php>
<postprocessing intID="319">
</postprocessing>
<question id="RE04" intID="32" />
<php intID="320">
replace('%remain%', 12); // Der Teilnehmer hat 12 Sekunden für die Bearbeitung
</php>
<text id="XXcode" intID="321">
<spacing>default</spacing>
</text>
</page>
<!-- Seite 43 -->
<page ident="Wtr04" intID="100">
<info>Wtr04</info>
<php intID="101"><![CDATA[
if (value('RE04_23') == 1) {
goToPage('Richtig04'); // Antwort korrekt
} else {
goToPage('Falsch04'); // Antwort falsch
}
]]></php>
</page>
<!-- Seite 44 -->
<page ident="Richtig04" intID="326">
<info>Richtig04</info>
<text id="Richtig04" intID="102">
<spacing>default</spacing>
</text>
</page>
<!-- Seite 45 -->
<page ident="Gototr01n" intID="331">
<info>Gototr01n</info>
<php intID="332"><![CDATA[
{
goToPage('TR01n');
}
]]></php>
</page>
<!-- Seite 46 -->
<page ident="Falsch04" intID="333">
<info>Falsch04</info>
<text id="Falsch04" intID="103">
<spacing>default</spacing>
</text>
</page>
<!-- Seite 47 -->
<page ident="TR01n" intID="373">
<info>TR01n</info>
<php intID="374"><![CDATA[
if (!isset($time0)) {
$time0 = time();
registerVariable($time0); // Die Variable $time0 auch nach Ende des PHP-Codes aufbewahren
}
// Prüfung, ob die Zeit schon abgelaufen ist
// (z.B. weil der Teilnehmer die Seite neu geladen hat)
$timer = 210; // Der Teilnehmer hat 210 Sekunden Zeit zur Bearbeitung
if (time() >= $time0 + $timer) {
goToPage('next');
}
// Die verbleibende Zeit muss auch dem JavaScript-Code bekannt gemacht werden
$remain = $time0 + $timer - time();
replace('%remain%', $remain);
]]></php>
<question id="UN01" intID="5" />
<php intID="376">
replace('%remain%', 12); // Der Teilnehmer hat 12 Sekunden für die Bearbeitung
</php>
<text id="XXcode" intID="377">
<spacing>default</spacing>
</text>
</page>