Kleiner Tipp vorab: Sie können die Kärtchen in der Auswahl höher eintellen oder (eleganter) die Zeilenhöhe für die Beschiftungen der Kärtchen mit einer Zeile CSS-Code reduzieren. Dann "klebt" der Text nicht so am unteren Ende der Boxen.
Wie kann ich es schaffen, dass mir die ersten drei Antworten aus der vorherigen Frage in die nächste Frage vor dem Textfeld angezeigt werden soll?
Hier müssen Sie die Datenstruktur beachen: In F401_01 steht, auf welchem Rang das Item 01 platziert wurde - nicht, was auf Rang 1 steht. Wenn Sie das Risiko eingehen, dass einer der ersten drei Ränge freigelassen wurde und dann evtl. das Item von Platz 4 nachrückt, dann könnten Sie etwa folgenden Code verwenden:
$ranks = valueList('F401'); // Liefert eine Liste von Variablen und Rängen
asort($ranks); // Aufsteigend nach Rängen sortieren
$keys = array_keys($ranks); // Die Variablennamen extrahieren
// Und jetzt noch die Top3 als Platzhalter ablegen
for ($i=0; $i<3; $i++) {
$itemID = (int)trim(substr($keys[$i], 5), '0');
replace('%text'.($i+1).'%', getItemtext('F401', $itemID));
}
Aber bevor Sie sich damit jetzt zurfrieden geben: Denken Sie bitte gleich an die Auswertung! Wenn Sie die (z.B.) Bewertungen für ein Item in der Folgefrage immer in unterschiedlichen Variablen haben, dann ist das extrem schwer auszuwerten - je nachdem, was Sie rechnen möchten.
Deshalb könnte es deutlich (!) effizienter sein, wenn Sie in der Folgefrage alle Items anlegen (z.B: Ranking kopieren und Fragetyp ändern) und dann nur die Top 3 anbieten. Dabei ändert sich nur der untere Teil.
$ranks = valueList('F401'); // Liefert eine Liste von Variablen und Rängen
asort($ranks); // Aufsteigend nach Rängen sortieren
$keys = array_keys($ranks); // Die Variablennamen extrahieren
// Und jetzt noch die Top3 als Platzhalter ablegen
$itemsIDs = array();
for ($i=0; $i<3; $i++) {
$itemIDs[] = (int)trim(substr($keys[$i], 5), '0');
}
question('XX01', $itemIDs);