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

Leider bekomme ich die Syntax auch mit Hilfe der Onlinehilfe nicht richtig aufgebaut.
Meine Umfrage besteht aus acht Themen mit jeweils zehn gleichen Fragen. EIn Thema das abgearbeitet ist, soll bei der nächsten Funktion 'buttonToPage' nicht mehr auswählbar bzw. sichtbar sein. An welcher Stelle wird die Variable mit 'put' gesetzt und wie muss sie aussehen? Wo wird die Variable gesetzt und wie lautet die Syntax?

in SoSci Survey (dt.) by s084074 (130 points)

1 Answer

0 votes

Ich vermute, dass die 8 Teile in unterschiedlichen Seiten unter Fragebogen zusammenstellen liegen. Legen Sie zum Speichern, welche Teile bereits bearbeitet wurden, bitte als erstes eine Frage vom Typ "interne Variablen" mit 8 Variablen an. Für das folgende Beispiel gehe ich davon aus, dass die Frage die Kennung IV01 hat.

Nun setzen Sie irgendwo des ersten Frageblocks (z.B. auf der letzten Seite des Blocks, bevor es zurück zur Auswahl geht) folgenden PHP-Code:

put('IV01_01', 2);

Welche Zahl Sie dort speichern, ist eigentlich egal. Ich habe die 2 gewählt, weil SoSci Survey konsistent 1 für "nicht ausgewählt" und 2 für "ausgewählt" verwendet. Im zweiten Block setzen Sie entsprechend...

put('IV01_02', 2);

... und so weiter. Auf der Auswahlseite zeigen Sie nun die Knöpfe mithilfe einer FOR-Schleife und prüfen für jeden Knopf, ob Sie diesen noch brauchen. Das Array am Anfang sorgt dafür, dass es übersichtlich bleibt. Es enthält die Codes der zugehörigen internen Variablen und die Kennungen und Beschriftungen für buttonToPage().

$buttons = array(
  array('IV01_01', 'part1', 'Teil A'),
  array('IV01_02', 'part2', 'Teil B'),
  array('IV01_03', 'part3', 'Teil C'),
  // u.s.w.
  array('IV01_08', 'part8', 'Teil H')
);
foreach ($buttons as $button) {
  $intID = $button[0];  // Die Kennung der internen Variable
  if (value($intID) == 2) {
    // Teil schon ausgefüllt - Dummy-Button anzeigen
    $html = '<button disabled="true">'.$button[2].'</button>';
  } else {
    $html = buttonToPage($button[1], $button[2]);
  }
  html($html);
}

Das sieht auf den ersten Blick ein wenig komplex aus - aber wenn Sie sich die Schleife und das IF darin einmal genauere ansehen, ist es eigentlich gar nicht so schlimm. Das Array $buttons wird einfach Zeile für Zeile abgespult, in $button[0] (der erste Wert pro Zeile) steht die Kennung der internen Variable, in den anderen beiden Teilen von $button stehen die Kennung des Sprungziels ($button[1]) und die Beschriftung für den Knopf ($button[2]).

by SoSci Survey (82.1k points)
...