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

Ich möchte 20 Items rotiert über 5 Seiten (mit jeweils 4 Items) verteilt ranken lassen, wobei die 4 Items pro Seite jeweils aus den vier unterschiedlichen Kategorien stammen sollen. Eine Kategorie sind jeweils die Items 1-5, 6-10, 11-15 & 16-20. Ist das über SoSciSurvey möglich? Und wenn ja, wie?

Ich habe bisher folgenden Code gemäß der Anleitung für die "Rotation von Items über mehrere Seiten" (https://www.soscisurvey.de/help/doku.php/de:create:rotation#rotation_von_items_ueber_mehrere_seiten) eingegeben (da fehlt allerdings noch völlig der Aspekt der :

if (!isset($itemsCC01)) {
$itemsCC01 = getItems('CC01', 'all');
shuffle($itemsCC01);
$itemsCC01 = array_chunk($itemsCC01, 4);
registerVariable('itemsCC01');
}

$i = loopPage(count($itemsCC01));
question('CC01', $itemsCC01[$i]);

Vielen Dank im Voraus!

in SoSci Survey (dt.) by s080095 (115 points)
edited by s080095

1 Answer

+1 vote

Damit die Items aus den unterschiedlichen Kategorien stammen, müssen Sie die Kategorien "in sich" getrennt mischen. Anschließend bauen Sie dann die 5 Teillisten zusammen. Das könnte etwa wie folgt aussiehen:

// Das ganze Mischen machen wir nur einmal
if (!isset($blocks)) {
  $categories = array(
    array(1,2,3,4,5),
    array(6,7,8,9,10),
    array(11,12,13,14,15),
    array(16,17,18,19,20)
  );
  $nCat = count($categories);
  // Jetzt jedes dieser Teil-Arrays mischen
  for ($cat=0; $cat < $nCat; $cat++) {
    shuffle($catgories[$cat]);
  }

  // Jetzt eine Liste erstellen, wobei jeweils ein Item aus einer Teilliste stammt
  $blocks = array();
  for ($i=0; $i<5; $i++) {
    $blocks[$i] = array();
    for ($cat=0; $cat < $nCat; $cat++) {
      $blocks[$i][] = $categories[$cat][$i];
    }
  }

  registerVariable($blocks);
}

// Und diese dann auf 5 Seiten verteilt anzeigen
$i = loopPage(count($blocks));
question('CC01', $blocks[$i]);
by SoSci Survey (59.7k points)
Vielen Dank! Ich erhalte allerdings noch die Fehlermeldung: "Questionnaire Error: shuffle() expects parameter 1 to be array, null given. line: 12". In line 12 steht: "  shuffle($catgories[$cat]);"

Ein weiteres Problem ist, dass mir auf der zweiten Ranking-Seite stets angezeigt wird, dass ein Rang mehrfach genutzt worden sei: "You applied the rank 2 more than once. Please apply each rank only once." Der Fehler tritt jedes mal auf, wobei die Zahl des Rangs von 1-4 variiert. Somit komme ich aktuell von der zweiten Seite leider nicht mehr weiter.

Wie kann ich das lösen? Vielen dank im Voraus!
Könnten Sie vor der Fehlersuche vor dem shuffle() bitte noch folgendes einfügen:

debug($cat);
debug($catgories[$cat]);

Anschließend bitte im Debug-Modus (gelber Pfeil) laufen lassen und kurz posten, was SoSci Survey so angezeigt. Danke.

Für eine Rangordnung (Ranking) ist diese Mischung denkbar ungeeignet, denn pro Ranking-Frage darf es jeden Rang ja per Definition nur einmal geben. Sie können eine Ranking-Frage daher nicht über mehrere Seiten verteilen. Was Sie machen können, ist eine Skala (evtl. auch als Dropdown angezeigt), wo die Teilnehmer so etwas wie Ränge aussuchen sollen.
"Sie können eine Ranking-Frage daher nicht über mehrere Seiten verteilen."
--> Schade, somit ist mein geplantes Forschungsvorhaben im Detail so nicht möglich. Ich konnte mich mit meinen Betreuern eine andere vorgehensweise einigen, die Frage hat sich also erledigt.

Bei Unipark geht das übrigens auch nicht, dort habe ich allerdings keine so schnelle Antworten im Forum erhalten. Das ist ein großer Vorteil hier. Vielen Dank für die Hilfe, ich empfehle Sie weiter! :-)
Tja ... es ist leider ein sachlogisches Problem: Eine Frage wird von SoSci Survey als eine Einheit behandelt. Und nachdem eine Ranking-Frage per Definition jede Rang nur einmal vergeben darf, klappt es nicht, auf unterschiedlichen Seiten die gleichen Ränge in derselben Frage zu vergeben.

Eine Alternative würde darin bestehen, 5 unterschiedliche Fragen zu erstellen und per Platzhalter dann die Texte anzuzeigen. Aber das wird bei der Auswertung extrem anspruchsvoll, weil die Variablen dann ständig für andere Texte stehen. Da muss man schon sehr souverän unterwegs sein, um keine Fehler in die Auswertung zu bringen.

Danke übrigens für das positive Feedback zum Support :)
...