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

Hallihallo,

ich würde gerne meine 16 Fragen, die sich auf insgesamt 6 Seiten aufteilen sollen (4x3 Fragen, 2x 2 Fragen). komplett routieren lassen.
Ich habe versucht den Code aus dem Handbuch zu nehmen, aber nun werden schon mehrere auf der ersten Seite angezeigt und es kommt immer wieder die Warnung "Items of the following question have been used repeatedly on this page. This inevitably results in data loss! If you need the same question more than once, please create a copy of this question. The following items are duplicates: ST03_01, ST03_02, ST03_03, ST03_04, ST03_05."

Könnten Sie mir bitte bitte weiterhelfen, wie ich es schaffe, dass nur 3 bzw. 2 Fragen auf einer Seite angezeigt werden?
Brauche ich den Befehl zur looppage? Als ich ihn hinzugefügt habe, hat es sich nicht verändert.

Folgendes habe ich als php code auf der ersten Seite eingefügt:

// Das Mischen der Liste nur einmalig ausführen
if (!isset($fragen)) {
  // Liste der Frage-Kennungen erstellen
  $fragen = array(
    'CH01', 'CH02',
    'CH03', 'CH04',
    'PA01', 'PA02',
    'PA03', 'PA04',
    'ST01', 'ST02',
    'ST03', 'ST04',
    'EU01', 'EU02',
    'EU03', 'EU04'
  );
  // Die Liste zufällig mischen
  shuffle($fragen);
  // Die Listen auf allen Seiten verfügbar machen
  registerVariable('fragen');
}

$i = loopPage(count($fragen));
question($fragen[$i]);
 
// Die ersten drei Kennungen der Liste anzeigen
question($fragen[0]);
question($fragen[1]);
question($fragen[2]);

und dann auf der nächsten Seite:

question($fragen[3]);
question($fragen[4]);
question($fragen[5]);

und das mit fortlaufender Nummer auf den weiteren Seiten.

Ich wäre Ihnen für Ihre Hilfe sehr dankbar!

Viele Grüße :)

in SoSci Survey (dt.) by s084718 (110 points)

1 Answer

0 votes

Das loopPage() sorgt dafür, dass die Seite immer wieder angezeigt wird - in Ihrem Fall 16-mal. Oben dann eine der Fragen und darunter nochmal die ersten drei Fragen (nach Rotation).

Wenn Sie also ohnehin schon mehrre Seiten angelegt haben, dann entfernen Sie auf der ersten Seite einfach folgende beide Zeilen

$i = loopPage(count($fragen));
question($fragen[$i]);
by SoSci Survey (118k points)
Nun habe ich also nur noch:
 
// Das Mischen der Liste nur einmalig ausführen
if (!isset($fragen)) {
  // Liste der Frage-Kennungen erstellen
  $fragen = array(
    'CH01', 'CH02',
    'CH03', 'CH04',
    'PA01', 'PA02',
    'PA03', 'PA04',
    'ST01', 'ST02',
    'ST03', 'ST04',
    'EU01', 'EU02',
    'EU03', 'EU04'
  );
  // Die Liste zufällig mischen
  shuffle($fragen);
  // Die Listen auf allen Seiten verfügbar machen
  registerVariable('fragen');
}

 
// Die ersten drei Kennungen der Liste anzeigen
question($fragen[0]);
question($fragen[1]);
question($fragen[2]);

es werden aber weiterhin 6 Fragen + Fehlermeldung angezeigt.

wenn ich das ; hinter dem letzten Befehl lösche, dann sind da auch nur noch 3 Fragen pro Seite, allerdings gibt es dann die Fehlermeldung, dass ich das ; hinzufügen muss.
Vielen Dank für Ihre Hilfe!
Bitte überprüfen Sie einmal, ob es an Top 3 der typischen Filter-Fehler liegt: https://www.soscisurvey.de/help/doku.php/de:create:filter-solving
Können Sie mir hier bitte weiterhelfen?

Viele Grüße
Bea
Vermutlich schon ... wobei genau - und was ist die Frage?
Nun habe ich also nur noch:
 
// Das Mischen der Liste nur einmalig ausführen
if (!isset($fragen)) {
  // Liste der Frage-Kennungen erstellen
  $fragen = array(
    'CH01', 'CH02',
    'CH03', 'CH04',
    'PA01', 'PA02',
    'PA03', 'PA04',
    'ST01', 'ST02',
    'ST03', 'ST04',
    'EU01', 'EU02',
    'EU03', 'EU04'
  );
  // Die Liste zufällig mischen
  shuffle($fragen);
  // Die Listen auf allen Seiten verfügbar machen
  registerVariable('fragen');
}

 
// Die ersten drei Kennungen der Liste anzeigen
question($fragen[0]);
question($fragen[1]);
question($fragen[2]);

und auf den nächsten Seiten dann weiterhin jeweils 3 question($fragen[...]) mit fortlaufender Nummer.

es werden aber weiterhin 6 Fragen + Fehlermeldung angezeigt.

wenn ich das ; hinter dem letzten Befehl lösche, dann sind da auch nur noch 3 Fragen pro Seite, allerdings gibt es dann die Fehlermeldung, dass ich das ; hinzufügen muss.
Wissen Sie, wie ich es ändern kann, damit es funktioniert?

Vielen Dank für Ihre Hilfe!
Und Top 3 der typischen Filter-Fehler haben Sie schon überprüft?
https://www.soscisurvey.de/help/doku.php/de:create:filter-solving

Ich bin mir eigentlich ziemlich sicher, dass Sie noch Fragen "in die Seite hineingezogen" haben - zusätzlich zum PHP-Code. Die müssten raus.
Oh ja, jetzt verstehe ich es. Vielen lieben Dank und tut mir leid, dass ich nicht früher genau nachgelesen habe!
...