0 votes
in SoSci Survey (dt.) by s293846 (120 points)

Ich stehe vor folgendem Problem:

Ich möchte in einer Rubrik mehrere Rangordnungsitems zu verschiedenen Ebenen eines Konstrukts einbringen. Allerdings sollen im letzten Item dann die vorherigen "erstplatzierten" Antworten noch einmal sortiert werden. Das Ganze soll automatisch funktionieren.

Gibt es eine Möglichkeit dies technisch in SoSciSurvey umzusetzen?

Vielen Dank!

1 Answer

0 votes
by SoSci Survey (327k points)

Im Prinzip können Sie mit ein wenig PHP-Code und dem Befehl getItems() die erstplatzierten Items recht einfach ermitteln.

$items = getItems('RG01', 'is', 1);
if (!empty($items)) {
  $item = $items[0];
}

Der IF-Filter fängt den Fall ab, dass kein Item auf Rangplatz 1 platziert wurde. Was dann passieren soll, müssen Sie sich überlegen.

Die Herausforderung ist, dass die Item-Nummern in jeder Rangordnung dieselben sind. Sie tun sich wesentlich leichter, wenn Sie gleich utnerschiedliche Nummern verwenden. Also z.B. Item 1 bis 10 in Rangordnung 1, Codes 11 bis 20 in Ranghordnung 2 u.s.w. Dann hat gleich jedes Item eine eindeutige Nummer - und dann können Sie die Items einfach zusammen in eine Liste schreiben.

Wie Sie den Item Codes zuweisen, steht hier beschrieben: Antwortcodes und Kennungen vorgeben.

Dann noch den Code von oben ein wenig anpassen...

$fragen = ['RG01', 'RG02', 'RG03', 'RG04'];

$items = [];
foreach ($fragen as $frage) {
    $itemListe = getItems($frage, 'is', 1);
    if (!empty($itemListe)) {
      $items[] = $itemListe[0];
    }
}

// Das hier ist dann die Folgefrage
question('XX01', $items);
by s293846 (120 points)
Vielen Dank für die schnelle Antwort. Wäre es möglich eine etwas 'laienhaftere' Erklärung zu bekommen, da ich von PHP-Code leider wenig verstehe.
by SoSci Survey (327k points)
Sie werden nicht umhin kommen, sich ein klein wenig einzuarbeiten. Aber keine Sorge, ein paar Programmier-Kenntnisse sein eine wertvolle Fähigkeit, die auch an anderer Stelle hilft :)

$fragen = ['RG01', 'RG02', 'RG03', 'RG04'];

Das definiert erstmal ein Array (eine Liste) mit den Kennungen Ihrer Rangordnung-Fragen. Die Kennungen RG01 u.s.w. müssen sie also austauschen.

Wie gesagt: Sie sorgen vorab dafür, dass die Items/Optionen in den Rangordnung-Fragen unterschiedliche Codes verwenden. Klappt das?

question('XX01', $items);

Diese Zeile hier ist dann für die Folgefrage. Auch da müssen Sie die Kennung XX01 austauschen. Der Rest vom Code kann wahrscheinlich 1:1 übernommen werden. Was eine Schleife (FOR bzw. FOREACH) und ein Filter (IF) macht, können Sie bei Interesse nachlesen, wenn Sie diesen Teil besser verstehen möchten.
by s293846 (120 points)
Erstmal nochmal vielen Dank für die ausführliche Hilfe! Das ist sehr hilfreich

Also die Optionen in den Rangordnungsfragen habe ich mit verschiedenen Codes ausgestattet (1-4 für RG01, 5-8 für RG02 und 9-12 für RG03). Nun möchte ich die finale Frage erstellen und kopiere den Code mit den entsprechenden Änderungen in das Feld "Items (Kärtchen)". Wenn ich die Frage dann allerdings speichere, sind die Antwortoptionen die Zeilen des PHP-Codes.

Ich weis leider wirklich noch zu wenig über PHP um den Fehler zu entdecken.
by SoSci Survey (327k points)
Also, den Code aus meiner Antwort tragen sie nicht in der Frage ein, sondern direkt unter "Fragebogen zusammenstellen", siehe https://www.soscisurvey.de/help/doku.php/de:create:php - und zwar an der Stelle, wo Sie normalerweise die Folgefrage platzieren würden (die Sie dann nicht mehr in den Fragebogen ziehen).
by s293846 (120 points)
Vielen lieben Dank! Jetzt funktioniert es.
by s293846 (120 points)
kleine Ergänzung: kann man auch aus den Rangordnungsfragen die am höchsten und am zweithöchsten bewerteten Antworten in die Folgefrage einfügen lassen? Vielen Dank :)
by SoSci Survey (327k points)
Dafür würden sie diesen Teil...

    $itemListe = getItems($frage, 'is', 1);
    if (!empty($itemListe)) {
      $items[] = $itemListe[0];
    }

ersetzen wie folgt

      $items = array_merge(
          $items,
          getItems($frage, 'is', 1),
          getItems($frage, 'is', 2)
    );

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

...