Vielen Dank, das hat funktioniert!
Nun hat sich noch eine Anschlussfrage ergeben: In der ursprünglichen Frage, aus der die ausgewählten Items übernommen werden, gibt es auch ein Eingabefeld ("Andere Maßnahme, und zwar:___"). Die Antwort soll, falls ausgewählt, auch in der Liste auftauchen, nicht dagegen der Text des Items (s.o.).
Ich habe das mit der replace-Funktion versucht und außerdem statt der getItems-Funktion ein Array erstellt, in dem ich nur die 15 'fixen' Items auszählen lasse:
$frageID = 'HS03';
$html = array(); // Eine leere Liste erstellen
$selected = 15; //Anzahl zu prüfender Items
for ($i=1; $i<=$selected; $i++) { // Durchzählen von 1 bis 15
$kennung = id($frageID, $i); // Ergibt z.B. TF04_01
// Hat das Item einen Wert von 2?
if (value($kennung) == 2) {
$html[] = $i;
}
}
if ('HS03_16'==2) {
$html[] = '%andereMaßnahme%';
}
$html = '<ul>';
foreach ($selected as $itemNum) {
$html.= '<li>'.htmlspecialchars(getItemtext($frageID, $itemNum)).'</li>'; //Liste bauen
}
$html.= '</ul>';
if (!empty($selected)) { // Anzeigen
html($html);
}
Leider funktioniert es nicht und es kommt die Fehlermeldung: foreach() argument must be of type array|object, int given
Können Sie mir hier nochmal weiterhelfen?
Vielen Dank schonmal!