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

Ich habe eine loopToPage Schlaufe, in der jeweils auf Seite 5 und 6 Wörter angezeigt werden, und auf Seite 7 soll der Proband dann mittels einer "Text Input" Frage alle Wörter aufschreiben, an die er sich noch erinnert, dies innerhlab 90 Sekunden (Timer mit Countdown ist eingebaut).

Ist es möglich, hier beim "Text Input" nur das aktuelle Item anzuzueigen, so dass die bereits eingetippten Wörter auf dieser Seite ausgeblendet werden?

Zur Verdeutlichung des momentanen Aufbaus:

Seite5

$wrd_set = array(
  0 => array('WR01', 'WR02'),
  1 => array('WR03', 'WR04'),
  2 => array('WR05', 'WR06')
);} 
registerVariable($wrd_set);

$ir_set = array('IR01', 'IR02', 'IR03');
registerVariable($ir_set);

$i = loopToPage('IR', 3);

$myid1 = $wrd_set[$i][0];
debug($myid1);

question($myid1);
show('FC01', [
    '%question%' => $myid1
]);

Seite6

$i = loopIndex();

$myid2 = $wrd_set[$i][1];
debug($myid2);

question($myid2);
show('FC09', [
    '%question%' => $myid2
]);

Seite7

buttonHide();

$html_content = '<p>Verbleibende Zeit: </p>';

if (!isset($time0)) {
  $time0 = time();
  registerVariable($time0);  // Die Variable $time0 auch nach Ende des PHP-Codes aufbewahren
html($html_content);
}
$timer = 90;  // Der Teilnehmer hat 1 Minute (60 Sekunden) Zeit zur Bearbeitung
if (time() >= $time0 + $timer) {
  goToPage('next');
}
$remain = $time0 + $timer - time();
replace('%remain%', $remain);
question(FC06); //timer mit Countdown
$i = loopIndex();
////Frage "Text Input" anzeigen
question($ir_set[$i]);

////Cursor direkt in Textfeld platzieren
$id = id($ir_set[$i], 1);
debug($id);
replace('%mytextfield%', $id);

html('
<script type="text/javascript">
window.onload = function() {
    // Hier wird der Platzhalter ersetzt und der Textcursor positioniert
    document.getElementById("%mytextfield%").focus();
};
</script>');

Besten Dank

by SoSci Survey (327k points)
Ich bin nicht ganz sicher, ob ich die Frage korrekt verstehe.

> Ist es möglich, hier beim "Text Input" nur das aktuelle Item anzuzueigen, so dass die bereits eingetippten Wörter auf dieser Seite ausgeblendet werden?

Ich verstehe es so, dass Sie gerne ein Eingabefeld hätten, welches quasi immer geleert wird, wenn jemand ein Leerzichen tippt, und damit die Eingabe eines Worts abschließt. Im Hintegrund sollten natürlich alle Eingabe gespeichert werden. Geht das in die richtige Richtung.
by s066535 (275 points)
Genau, ich bräuchte ein Eingabefeld, in welches ein Wort geschrieben werden kann und sobald jemand die Eingabe mit zB Enter abschliesst, speichert es das geschriebene Wort als Eingabe ab und zeigt ein neues leeres Eingabefeld an. Wenn dann die 90 Sekunden um sind, soll es wieder auf die Seite 5 weiterspringen, solange bis die LoopToPage Schlaufe abgeschlossen ist.

1 Answer

0 votes
by SoSci Survey (327k points)

Genau, ich bräuchte ein Eingabefeld, in welches ein Wort geschrieben werden kann und sobald jemand die Eingabe mit zB Enter abschliesst, speichert es das geschriebene Wort als Eingabe ab und zeigt ein neues leeres Eingabefeld an.

Dafür werden Sie ein wenig JavaScript brauchen - und eine interne Variable, wo die Eingaben abgelegt werden. Im einfachsten Fall könnte das wie folgt aussehen.

Nehmen wir mal an, die interne Variable heißt IV01_01 (und wurde auf dei Seite gezogen) und das Eingabefeld hat die Kennung EF01_01.

var input = document.getElementById("EF01_01");
var internal = document.getElementById("IV01_01");

input.addEventListener("keyup", function(evt) {
  if (evt.keyCode == 13) {
    internal.value += "\n" + input.value;
    input.value = "";
  }
});

Zusärzlich könnte man das Wort noch sichtbar anzeigen ... und natürlich gäbe es noch viel mehr mögliche Ausschmückungen.

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

...