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

0 votes

Lieber SoSci Online Support,

Ich würde gerne in einer ersten Frage von dem Probanden Strings in Form einer freien Antwort erhalten. Dazu habe ich Frage 'GO03' erstellt. Anschliessend sollen diese Antworten auf einer Skala von 0-6 bewertet werden. (Wichtigkeit) Die Items von Frage 2 'GO02' sollten dann entsprechend zu den freien Eingaben von Frage 1 werden, um diese bewerten zu können.

Ich habe bis jetzt folgenden Code verwendet. Leider bin ich auch durch Online Recherche bis jetzt nicht auf eine Lösung gestossen.
Frage 1 und die entsprechenden Eingabefelder werden angezeigt, die zweite Frage zum Bewerten 'GO02' erscheint leider nicht.

question('GO03');  // Frage 1, zu denen offene Antworten gegeben werden
$frage = 'GO03';
$items = array();
for ($i=1; $i<=10; $i++) {
  $itemID = id($frage, $i);
  $antwort = value($itemID);
  if (trim($antwort) != '') {
    replace('%text'.$i.'%', $antwort);
    $items[] = $i;
  }
}
// Folgefrage anzeigen um die offenen Antworten aus Frage 1 zu bewerten
if (count($items) > 0) {
  question('GO02', $items);
}

Besten Dank für Ihre Hilfe!

in SoSci Survey (dt.) by s137192 (120 points)
edited by SoSci Survey

1 Answer

0 votes

SIe haben hier die erste und die zweite Frage auf derselben Fragebogen-Seite stehen. Das heißt: Wenn die Texte mittels ``value() ermittelt werden, dann hat der Teilnehmer diese noch gar nicht eingegeben.

Setzen Sie die Frage GO03 bitte einfach auf die vorhergehende Fragebogen-Seite und entfernen Sie im PHP-Code die erste Zeile.

Update

Mein Problem besteht auch darin, dass für die 10 Anworten aus der ersten Frage in der folgenden für jede Antwort jeweils eine Frage gestellt werden soll. Sprich ich habe dann ja keine einzelnen Items, sondern 18 einzelne Fragen (Dimensionen), welche dann für jeweils jede Antwort der ersten Frage gestellt werden soll

In diesem Fall ist der o.g. Code ungeeignet. Zunächst sollten Sie überlegen, ob Sie die Daten "nebeneinander" im Datensatz haben möchte oder lieber einen Datensatz pro Item. Mehr dazu s. Multi-Level Struktur.

Wenn Sie alle Daten "nebeneinander" in einer Datenzeile haben möchten, dann benötigen Sie 18 Kopien Ihrer Folgefrage. Ich nehme im folgenden Beispiel an, dass diese die die Kennungen FF01 bis FF18 haben.

Und vermutlich möchten Sie die Fragen auf einzelnen Seiten abfragen? Dann benötigen wir noch ein loopPage(). Den oberen Teil des PHP-Codes können wir verwenden wie gehabt.

question('GO03');  // Frage 1, zu denen offene Antworten gegeben werden
$frage = 'GO03';
$items = array();
for ($i=1; $i<=10; $i++) {
  $itemID = id($frage, $i);
  $antwort = value($itemID);
  if (trim($antwort) != '') {
    replace('%text'.$i.'%', $antwort);
    $items[] = $i;
  }
}

Und darunter im selben PHP-Code dann ein Loop für die Fragen.

$item = loopPage($items);
html('<h1>%text'.$item.'%</h1>');
question(id('FF', $item));
by SoSci Survey (141k points)
edited by SoSci Survey
Danke für Ihre Antwort.
Leider übernimmt es mir die Antworten der ersten Frage (GO03) nicht in die zweite (GO02) resp. die Items der zweiten sind nicht die Antworten der ersten.
Bitte prüfen Sie (a) ob die Items in beiden Fragen dieselben Nummern haben und (b) posten Sie bitte den PHP-Code, denn Sie verwendet haben, und die Debug-Information auf der Folgeseite.
Mein Problem besteht auch darin, dass für die 10 Anworten aus der ersten Frage in der folgenden für jede Antwort jeweils eine Frage gestellt werden soll. Sprich ich habe dann ja keine einzelnen Items, sondern 18 einzelne Fragen (Dimensionen), welche dann für jeweils jede Antwort der ersten Frage gestellt werden soll..

Die erste Frage ist eine offene Nennunge, daher habe ich dort keine 'Items Kennungen' die ich einsehen kann. Diese würde ich aber gerne übernehmen um dann jede einzelne Antwort zu bewerten.
Dazu habe ich 18 Fragen erstellt, in welche dann jede Antwort einzeln eingebettet werden soll.
Bsp: die Antworten aus GO03 sollen dann in Frage GD04 bewertet werden.
In der nächsten Frage GD05 auf der nächsten Seite wäre es ja dann nochmals das gleiche.

$Ziele = getItems('GO03', 'all'); // Ziele von GO03 erhalten
if (count($Ziele) > 0) {
  question('GD04', $Ziele); // in Frage GD04 übernehmen als Item zur einzelnen Bewertung
}
Ich habe meine Antwort oben um den von Ihnen beschriebenen Anwendungsfall ergänzt.
...