0 votes
in SoSci Survey (dt.) by s059033 (235 points)

Guten Tag,
In einem Experiment sollten die Teilnehmenden zwischen verschiedenen Themen auswählen. Hierbei werden die Themen nacheinander und randomisiert dargestellt. Die Leute werden angeleitet, wenn sie ein Thema interessiert, auf "Ja" zu klicken und dann zu weiterführenden Fragen geleitet. Nun würde ich gerne bei den weiterführenden Fragen den Teilnehmenden die von Ihnen gewählte Fragestellung anzeigen. Ist dies irgendwie machbar? Ich habe unten noch den Code eingefügt.
Vielen Dank!

// Das Mischen der Liste nur einmalig ausführen
if (!isset($fragen)) {
  // Liste der Frage-Kennungen erstellen
  $fragen = array(
    'S101', 'S102',                 //Hier mit den Variablennamen ergänzen
    'S103','S104' ,'S105' ,'S106','S107','S108','S109','S110','S111','S112','S113','S114','S115','S116','S117','S118','S119','S120'          
  );
  // Die Liste zufällig mischen
  shuffle($fragen);
  // Die Listen auf allen Seiten verfügbar machen
  registerVariable('fragen');
}
 $i = loopPage(count($fragen)); //Ein Item pro Seite anzeigen
question($fragen[$i]);

for ($i=0; $i<count($fragen); $i++) {
 $id = id('RF01', $i + 1);  
put($id, $fragen[$i]);                          }
question('RF01', 'css-class=false', 'css-style=false');
by SoSci Survey (327k points)
Nur damit ich Sie richtig verstehe: Sie bieten (in rotierter Abfolge) ein Dutzend Themen an - man kann jeweils ja/nein klicken und soll dann (direkt nach dem ja/nein) entweder noch Fragen bekommen oder nicht?
by s059033 (235 points)
Ich biete in rotierter Abfolge 21 Themen an, man kann jeweils ja/nein klicken. Wichtig ist hier noch, ich habe bei den Fragen selbst einen Filter erstellt (mit der neuen Funktion). Klickt eine Person auf "Ja" wird sie zu einem neuen Frageblock über das gewählte Thema geleitet. Klickt die Person auf "Nein" geht die Auswahl weiter (bis zur letzten Option). Ich habe mir überlegt mit IF-Schleifen zu arbeiten und der replace() -Funktion, aber irgendwie funktioniert das nicht so gut (ich erhalte dann nur im Platzhalter, dass die Frage mit Ja beantwortet wurde) Ich möchte aber den Text zur Frage die sie mit Ja beantwortet haben einblenden. Ich hoffe es ist jetzt etwas klarer :)

1 Answer

0 votes
by SoSci Survey (327k points)

Ich würde folgende Vorgehen empfehlen:

  1. Sie haben bisher eine Seite mit dem o.g. PHP-Code, der die ja-nein-Frage angezeigth setzen Sie dahinter eine oder mehrere Seiten für die Detailfragen - und sorgen Sie innerhalb der Folgeseiten dafür, dass je nach Durchgang die richtige Frage angezeigt wird.

  2. Verwenden Sie anschließend nicht loopPage(), sondern loopToPage(), um nicht immer nur die Seite mit der ja/nein-Frage zu wiederholen, sondern immer alle Seiten (also ja/nein plus Zusatzfragen) anzuzeigen. Für die Anzeige der richtigen Frage auf Seite 2ff. benötigen Sie loopIndex(). Am einfachsten legen Se auf der Folgeseite ein Array an, welche Frage(n) zu einer best. ja/nein-Frage angezeigt werden sollen. Tipp dazu:

    $i = loopIndex();
    $frage = $fragen[$i];

  3. Nun sorgen Sie per Filter dafür, dass die Folgefragen nur dann angezeigt werden, wenn bei der entsprechenden ja-nein-Frage die Option "ja" ausgewählt wurde. Wird eine Folgefrage nicht angezeigt, bleibt die Seite leer und SoSci Survey springt automatisch weiter zur nächsten ja-nein-Frage.

by s059033 (235 points)
Vielen Dank für Ihre rasche Antwort! Ich habe in der Zwischenzeit noch etwas anderes probiert, das für mich funktioniert. Und zwar habe ich jetzt die Texte in der Frage (die sie ja entweder auswählen sollten oder nicht) in die Antwort geschrieben und das Ganze als Kärtchen dargestellt. Dort wo ich nun die von ihnen gewählte Antwort anzeigen möchte, habe ich mit IF-Schlaufen gearbeitet. Ich nehme an, dass Ihre Lösung viel, viel eleganter ist, aber es war für mich etwas zu kompliziert :)
Ich schreibe meine Umsetzung einfach mal hier rein. Es gibt zwar im Admin-Modus jetzt die Fehlermeldung, dass die Fragen nicht abgefragt wurden, aber das ist ja nicht weiter schlimm, oder?

Hier der Code beim Abrufen:
if (value('S201') == 1) {
  replace('%Choice%', 'S201', 'response');
}
elseif (value('S202') == 1) {
  replace('%Choice%', 'S202', 'response');
}
elseif (value('S203') == 1) {
  replace('%Choice%', 'S203', 'response');
}
if (value('S204') == 1) {
  replace('%Choice%', 'S204', 'response');
}
if (value('S205') == 1) {
  replace('%Choice%', 'S205', 'response');
}
if (value('S205') == 1) {
  replace('%Choice%', 'S205', 'response');
}
if (value('S206') == 1) {
  replace('%Choice%', 'S206', 'response');
}
if (value('S207') == 1) {
  replace('%Choice%', 'S207', 'response');
}
if (value('S208') == 1) {
  replace('%Choice%', 'S208', 'response');
}
if (value('S209') == 1) {
  replace('%Choice%', 'S209', 'response');
}
if (value('S210') == 1) {
  replace('%Choice%', 'S210', 'response');
}
if (value('S211') == 1) {
  replace('%Choice%', 'S211', 'response');
}
if (value('S212') == 1) {
  replace('%Choice%', 'S212', 'response');
}
if (value('S213') == 1) {
  replace('%Choice%', 'S213', 'response');
}
if (value('S214') == 1) {
  replace('%Choice%', 'S214', 'response');
}
if (value('S215') == 1) {
  replace('%Choice%', 'S215', 'response');
}
if (value('S216') == 1) {
  replace('%Choice%', 'S216', 'response');
}
if (value('S217') == 1) {
  replace('%Choice%', 'S217', 'response');
}
if (value('S218') == 1) {
  replace('%Choice%', 'S218', 'response');
}
if (value('S219') == 1) {
  replace('%Choice%', 'S219', 'response');
}
if (value('S220') == 1) {
  replace('%Choice%', 'S220', 'response');
}
if (value('S221') == 1) {
  replace('%Choice%', 'S221', 'response');
}

Vielen Dank nochmals für den unglaublich tollen Support hier!!
by SoSci Survey (327k points)
Wenn Sie wissen, warum (!) die Warnung erscheint, dann ist alles gut.

Wichtig ist aber, dass Sie prüfen, ob Sie alle Daten im Datensatz haben, die Sie für die Auswertung benötigen. Wenn man das rechtzeitig prüft, vermeidet man böse Überraschungen.

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

...