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

Hallo alle zusammen,

ich habe anhand dieses Codes meine Items über mehrere Seiten randomisiert:

if (!isset($blocks)) {
  $fragen = array('O001', 'O002', 'O003', 'O004', 'O005', 'O006', 'O007', 'E001', 'G001', 'V001', 'N001', 'N002', 'E002', 'E003', 'E004');
  $items = array();
  foreach ($fragen as $frage) {
    // Items für jede einzelne Frage
    $itemsF = getItems($frage, 'all');
    foreach ($itemsF as $itemID) {
      $items[] = array($frage, $itemID);
  }  
  shuffle($items);
  $blocks = array_chunk($items, 20);
  registerVariable($blocks);
}

$i = loopPage(count($blocks));

}

foreach ($blocks[$i] as $pos => $item) {
  $frage = $item[0];
  $itemID = $item[1];

if ($pos == 0) {

    // Verankerung nicht deaktiviert beim ersten Item (=Index 0)
    question($frage, $itemID, 'spacing=5');
  } elseif ($pos == 19) {
    // Kein reduzierter Abstand beim 20-ten Item (=Index 19)
    question($frage, $itemID, 'anchor=none', 'show-title=no');
  } else {
    // Alles dazwischen ohne Verankerung und mit weniger Abstand nach unten (5 Pixel)
question($frage, $itemID, 'spacing=5', 'anchor=none', 'show-title=no');
}
}

Das funktioniert alles auch soweit, so gut. Mein Problem ist nun, dass die Schattierung der Items nicht mehr angezeigt wird, obwohl ich diese bei allen Items als automatisch eingestellt habe. Ich habe auch schon die Tipps aus dieser Frage befolgt https://support.soscisurvey.de/?qa=9773/schattierung-rotation-items-mehrerer-fragen-funktioniert ; leider funktioniert bei mir weder der dort eingefügte Code für das Shading, noch die Anpassung der Darstellung aller Fragen, da alle demselben Fragetyp entsprechen und auch bei den Darstellungsoptionen alles gleich eingestellt ist. Ich habe es sowohl mit einer Skala mit Zwischenbeschriftungen sowie einer Skala, bei der nur Extrema beschriftet sind, versucht und dabei dann auch die Varianten dynamisch und Standard bei jeweils beiden ausprobiert.

Ich weiß seit Tagen nicht mehr so richtig weiter, und hoffe, dass mir hier jemand helfen kann! :) Ich möchte einfach, dass die Items abwechselnd schattiert angezeigt werden, damit man nicht in der Zeile verrutscht.

Viele Grüße
Melanie

1 Answer

0 votes
by SoSci Survey (302k points)
edited by SoSci Survey

Mein Problem ist nun, dass die Schattierung der Items nicht mehr angezeigt wird, obwohl ich diese bei allen Items als automatisch eingestellt habe.

Das liegt schlicht und ergreifend daran, dass Sie jedes Item separat in einer Frage anzeigen.

Jedes Item ist also das erste in der jeweiligen Frage - und mithin bekommen alles die gleiche Schattierung.

Sie können im question()-Befehl aber einfach angeben, ob das Item schattiert werden soll. Und dies natürlich in Abhängigkeit davon, ob es ein gerades oder ungerades Item ist:

if ($pos % 2 = 0) {
  $shading = 'shading=all-unshaded';
} else {
  $shading = 'shading=all-shaded';
}

Dies schreiben Sie vor Ihre IF-Konstruktion und in den question()-Befehlen ergänzen Sie diesen Parameter dann einfach, also z.B.

question($frage, $itemID, 'spacing=5', $shading);
by s123706 (120 points)
Vielen Dank für die Hilfe! Das mit der Schattierung funktioniert jetzt fast richtig - nur die erste Zeile ist ungewollterweise auch nicht schattiert, warum, weiß ich nicht genau.

Nun hat sich aber plötzlich ein anderes Problem aufgetan, bei dem ich jetzt gar nicht verstehe, wo es herkommt: Mir wird plötzlich die Fehlermeldung angezeigt, dass die Variable $i nicht definiert sei, nachdem ich mich durch die erste Seite des Fragebogens geklickt habe - ich verwende aber denselben Code wie oben und auch wenn ich die neuen Befehle mit dem Shading weglasse, erscheint die Meldung, wenn ich mich durch den Fragebogen klicken will.

Wissen Sie, woher das plötzlich kommen könnte?

Viele Grüße und vielen Dank
by s123706 (120 points)
edited by s123706
Zuvor hat das wochenlang einwandfrei funktioniert... zusätzlich wird noch diese Meldung angezeigt: "Sie speichern Zusatz-Daten (%blocks%) mit mehr als 2 KB in diesem Interview. Bitte verwenden Sie für umfangreiche Platzhalter den Befehl show() anstatt replace()."

Und mir ist jetzt aufgefallen, dass ich versehentlich einen PHP-Code von der Seite gelöscht habe, die vor der Seite mit dem oben genannten Code kam und die offenbar dazu geführt hat, dass nach den ersten 20 Items weitere Seiten kamen, was jetzt nicht mehr funktioniert.
Können Sie sich vorstellen, wie dieser Code aussehen könnte, der dazu führt, dass nachdem ersten Block weitere Items angezeigt werden?
Entschuldigen Sie bitte die vielen Fragen...
Lieben Dank!
by SoSci Survey (302k points)
> nur die erste Zeile ist ungewollterweise auch nicht schattiert, warum, weiß ich nicht genau.

Ich habe oben die 'unshaded' und 'shaded' noch vertauscht, nun sollte es genau andersherum schattiert sein.

> Zuvor hat das wochenlang einwandfrei funktioniert... zusätzlich wird noch diese Meldung angezeigt: "Sie speichern Zusatz-Daten (%blocks%) mit mehr als 2 KB in diesem Interview. Bitte verwenden Sie für umfangreiche Platzhalter den Befehl show() anstatt replace()."

Das bezieht sich auf einen anderen PHP-Code - insofern besser in einer neuen Frage.

> Und mir ist jetzt aufgefallen, dass ich versehentlich einen PHP-Code von der Seite gelöscht habe

Kein Problem. Unter "Interner Code" können Sie sich unten die "Historie" herunterladen. Dort finden Sie auch den versehentlich gelöschten Code wieder.
by s123706 (120 points)
Vielen Dank erst einmal für die schnelle Antwort.
Die Meldung mit den Zusatz-Daten wurde schon die ganze Zeit angezeigt, plötzlich aber mehrfach, weshalb ich mal nachfragen wollte...
bezieht sich also doch auf den oben stehenden PHP-Code.
Das mit der Historie habe ich versucht, allerdings werden darin offenbar leider nur die Änderungen eines Tages gezeigt und ich hatte den anderen Code schon am Vortag versehentlich gelöscht.

Ich hatte auf der Seite vor dem oben genannten PHP-Code einen PHP-Code stehen, der dazu geführt hat, dass alle darin enthaltenen Fragen auf einer Fragebogenseite stehen, die sich dann aber im letztendlichen Fragebogen in 20 Fragen pro Seite unterteilt haben. Wüssten Sie vielleicht, welcher Code das gewesen sein könnte? Mir hatte ein Dozent beim Erstellen geholfen, weshalb mir der Code nun einfach nicht mehr einfällt..
Vielen Dank!
by SoSci Survey (302k points)
> Das mit der Historie habe ich versucht, allerdings werden darin offenbar leider nur die Änderungen eines Tages gezeigt und ich hatte den anderen Code schon am Vortag versehentlich gelöscht.

Nein, dort werden alle Änerungen aufbewahrt, allerdings nur, bis das Gesamtvolumen 1 MB überschreitet. Das sollte Platz für eine sehr große Anzahl von Versionen bieten.

> Ich hatte auf der Seite vor dem oben genannten PHP-Code einen PHP-Code stehen, der dazu geführt hat, dass alle darin enthaltenen Fragen auf einer Fragebogenseite stehen, die sich dann aber im letztendlichen Fragebogen in 20 Fragen pro Seite unterteilt haben.

Das müsste ein loopPage() gewesen sein, vgl. https://www.soscisurvey.de/help/doku.php/de:create:functions:looppage
by s123706 (120 points)
Vielen Dank, jetzt funktioniert alles! :)

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

...