0 votes
in SoSci Survey (dt.) by s102828 (225 points)
edited by s102828

Hallo liebes SoSciSurvey-Team,
ich arbeite derzeit mit Lückentexten.
Gibt es die Möglichkeit in die erste Lücke des Textes bereits ein zufällioges Wort (In meinem Fall einen Namen) einzufügen?
Also die Aufgabe soll am Ende so aussehen:
Ein zufälliger Text wird agezeigt (ohne die Möglichkeit etwas einzutragen. Nur zum Lesen.).
Anschließend soll der Text erneut angezeigt werden (mit der Möglichkeit die Lücken auszufüllen), wobei die erste Lücke bereits mit einem Namen ausgefüllt sein soll. Diesen Namen möchte ich nun zufällig aus einer Liste auswählen und eintragen lassen.
Ich müsste ansonsten alle meine (40) Texte in unterschiedlichen Varianten speichern usw....das wird sehr aufwändig.
Die Namen müssen auch nicht zwingend gleich häufig auftauchen, ich möchte nur nicht bei jedem/r Teilnehmer/in den selben Namen im selben Text haben.

Danke und viele Grüße

p.s.: Mir kam eben in den Sinn, dass es für mich auch schon hilfreich wäre, wenn der zufällige Name einfach über dem Text erscheint. Ev. ist das einfacher zu realisieren?

1 Answer

+1 vote
by SoSci Survey (327k points)
selected by s102828
 
Best answer

Beides ist ungefähr gleich einfach :)

Wenn Sie 20 Namen in einem Zufallsgenerator (z.B. RG01) hinterlegen und das Textfeld die Kennung TX01_01 hat, dann würde es wie folgt aussehen:

question('RG01');  // Ziehung aus dem Zufallsgenerator
$name = value('RG01', 'label');
preset('TX01_01', $name);  // Eingabefeld vorbelegen

Wenn Sie den Namen nur einfach anzeigen möchten, wäre der Code nochmal 33% kürzer:

question('RG01');  // Ziehung aus dem Zufallsgenerator
replace('%name%', 'RG01', 'response');  // Platzhalter vorbereiten

In beiden Fällen müsste der Code über der Frage mit den Eingabefeldern bzw. dem Platzhalter stehen.

by s102828 (225 points)
Vielen Dank für die Antwort!
Leider bin ich unsicher, woher ich weiß welche Kennung die Textfelder in meinem Lückentext haben.
Desweiteren hätte ich wohl genauer beschreiben sollen wie mein PHP Code bisher schon aussieht:

$kennung1 = id('A1', value('GL01x1'));
$kennung2 = id('A2', value('GL02x1'));
$kennung3 = id('A3', value('GL03x1'));
$kennung4 = id('A4', value('GL04x1'));
$kennung5 = id('A5', value('GL05x1'));

// GL0X zieht einen Text aus einer bestimmten Kategorie.


$zahl = value('E101x1');  // E101 entscheidet welche Kategorie angezeigt wird
registerVariable($zahl);
if ($zahl == 1) {
  question($kennung1);
} elseif ($zahl == 2) {
  question($kennung2);
} elseif ($zahl == 3) {
  question($kennung3);
} elseif ($zahl == 4) {
  question($kennung4);
} elseif ($zahl == 5) {
  question($kennung5);
}
pageCSS('
input[type="text"] {
  border: 0 none;
  border-bottom: 1px solid black;
}
');

Ich bin unsicher wie ich den oben genannten Code für die erste Lücke einbauen könnte.

Ich habe es jetzt erstmal so gelöst:
Ich habe die Namen als Informationstext gespeichert und lasse jetzt über E102 zufällig einen anzeigen. Schöner wäre in der ersten Lücke, aber ich bin nun nicht sicher ob das in meinem Fall ohne riesigen Aufwand funktioniert?

$name = value('E102x1');  // Zufallzahl wurde von RG01 gezogen
if ($name == 1) {
  text("NA01");
} elseif ($name == 2) {
  text("NA02");
} elseif ($name == 3) {
  text("NA03");
} elseif ($name == 4) {
  text("NA04");
} elseif ($name == 5) {
  text("NA05");
} elseif ($name == 6) {
  text("NA06");
} elseif ($name == 7) {
  text("NA07");
} elseif ($name == 8) {
  text("NA08");
} elseif ($name == 9) {
  text("NA09");
} elseif ($name == 10) {
  text("NA10");
} elseif ($name == 11) {
  text("NA11");
} elseif ($name == 12) {
  text("NA12");
} elseif ($name == 13) {
  text("NA13");
}
by SoSci Survey (327k points)
Bei preset() geben Sie die Kennung der Variable an, wie sie auch in der Variablen-Übersicht steht.

Ansonsten ist der genannte Code unabhängig von Ihrem Code. Sie können ihn einfach davor schreiben.
by s102828 (225 points)
Hat geklappt, vielen vielen Dank mal wieder!
Ich bin immer wieder froh über den tollen Onlinesupport!!

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

...