0 votes
in SoSci Survey (dt.) by s066535 (275 points)
edited by SoSci Survey

Liebes Forum

Ich möchte folgendes tun: Mit LoopToPage soll mehrmals durch die Seiten 1-3 durchgeschlauft werden.
Auf Seite 1 wird ein Text angezeigt (im Fragekatalog als "simple text" gespeichert). Hier wird eine Frage präsentiert, sobald der Proband die Antwort darauf zu kennen glaubt, soll er auf "weiter" klicken. Auf Seite 2 steht eine Antwort (Zuordnungsaufgabe) und der Proband soll entscheiden ob diese wahr ist oder nicht. Auf Seite 3 erscheint eine unabhängige Frage.

Nun soll der Proband nur eine bestimmte Zeit auf Seite 1 verbringen dürfen, wenn der Proband zulange überlegt, soll er auf Seite 3 geleitet werden und die Aufgabe mit der Antort "nicht beantwortet" bewertet werden.

Dazu habe ich auf Seite 0 die zu zeigenden Fragen definiert:

$calcU3 = array(
0=>array('U321'),
1=>array('U322'),
2=>array('U323'),
3=>array('U324'),
4=>array('U325'),
5=>array('U306')
);
registerVariable($calcU3);


$calcLU3 = array(
0=>array('U307'),
1=>array('U308'),
2=>array('U309'),
3=>array('U310'),
4=>array('U311'),
5=>array('U312')
);
registerVariable($calcLU3);

$L_U3 = array(
0=>array('U313'),
1=>array('U314'),
2=>array('U315'),
3=>array('U316'),
4=>array('U317'),
5=>array('U318')
);
registerVariable($L_U3);

$i = loopToPage('letU3', 6);

auf Seite1 den Einzeiler php Code benutzt:

$maxtime = 2000;
put('IV01_07', $maxtime);
replace('%remain%', value('IV01_07'));

darunter den "timer" als html Textbausstein gezogen und in einem weitere php Code:

$i = loopIndex();
$set1 = $calcU3[$i];
question($set1[0]);

geschrieben.

Der Timer leitet nun jedoch die Seite nach Ablauf der Zeit nicht weiter. Woran lieg dies?

1 Answer

0 votes
by SoSci Survey (305k points)

Der Timer leitet nun jedoch die Seite nach Ablauf der Zeit nicht weiter. Woran lieg dies?

Nachdem alleine der JavaScript-Code dafür verantwortlich ist, nach Ablauf des Timers das Weiter-Knöpfchen zu drücken, vermute ich den Fehler im JavaScript oder bei dessen Einbindung.

Werfen Sie als erstes einen Blick in die JavaScript-Fehlerkonsole Ihres Browsers wenn etwas mit dem Timer nicht stimmt, dann finden Sie hier in aller Regel hilfreiche Fehlermeldungen.

Wenn Sie dort nicht fündig werden oder mit dem Fund nichts anfangen können, posten sie gerne einmal einen Pretest-Link direkt (!) zu der Seite, wo das Ganze losgeht ("Seite 0").

by s066535 (275 points)
Liebes Forum
Gerne hier der Pretestlink zur Seite0:
https://sosci.scicore.unibas.ch/smart2/?act=5VZWYSBnGikJOb9v5d0ZguFf

Vielen Dank
by SoSci Survey (305k points)
Okay, wenn ich das anklicke, bekomme ich zunächst eine Rechenaufgabe - das ist die Seite, wo der Timer aktiv werden sollte, korrekt? Wnd dann folgt eine Auswahlabfolge, welche erneut Rechenaufgaben stellt.

> darunter den "timer" als html Textbausstein gezogen

Sind Sie sicher, dass auf der verlinkten Seite so ein JavaScript-Code ist? Ich finde auf den ersten Blick keinen.
by s066535 (275 points)
Korrekt - die Rechenaufgabe sollte nur eine bestimmte Dauer angezeigt werden.
Auf der Seite hat es drei Elemente:

Element1 - PHP Kasten1 mit dem Inhalt:  
option('layout', 'presenter');

$maxtime = 2000;
put('IV01_07', $maxtime);
debug(value('IV01_07'));
replace('%remain%', value('IV01_07'));

Element 2 - Text (als html Code gespeichert):
<script type="text/javascript">
<!--
// Funktion zur Weiterleitung
function weiter() {
  // Eine Meldung anzeigen (optional)
  alert("Die Zeit ist vorbei.");
  // Den Teilnehmer zur nächsten Seite weiterleiten
  SoSciTools.submitPage();
}
// Initialisierung der Weiterleitung
SoSciTools.attachEvent(window, "load", function(evt) {
  // Weiter-Knopf ausblenden (optional)
  //SoSciTools.submitButtonsHide();
  // Timer für automatische Weiterleitung starten
  window.setTimeout(weiter, %remain% * 1000);
});
// -->
</script>

Element 3 - PHP Kasten 2 mit dem Code:
if ($feedback_pre >= 85) {
    html('<central><h1 style="color: green">'.$feedback_pre.' %</h1></central>');
  } else {
    html('<central><h1 style="color: red">'.$feedback_pre.' %</h1></central>');
}

$i = loopToPage('letU3', 6);
$set1 = $calcU3[$i];
question($set1[0]);

html(
  '<div style="margin: 4em; text-align: center">'.
  buttonCode('next').
  '</div>'
);

Ist das Problem, dass ich den loopToPage Befehl in den ersten PHP Code Kasten schreiben sollte?
by SoSci Survey (305k points)
Wenn ich im Quelltext der Seite 0/18 nach dem Text "Funktion zur Weiterleitung" suche, ist der dort nicht vorhanden.

> Element 2 - Text (als html Code gespeichert)

Ich muss deshalb davon ausgehen, dass der Text "Element 2" nicht korrekt eingebunden ist. Haben Sie vielleicht einen mehrsprachigen Fragebogen und der HTML-Code ist nur für eine Sprache definiert?

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

...