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]
).