Also es geht nur bis 10.
Das vereinfacht das Ganze ja.
Damit enthält die Liste (der String) die Liste ja nur einstellige Werte (es ist ja egal, ob ich von 1-10 oder von 0-9 arbeite), z.B. #235
Dann hast Du Deine Zufallszahl "QZ", und Du prüfst ob QZ im Text enthalten ist.
Eben mit "strpos".
Und jetzt siehst Du auch, warum am Anfang ein "#" eingefügt ist.
"strpos" ist nullbasiert.
Wenn die Funktion ein Element an der ersten Stelle findet, gibt sie "0" zurück, ist es an der zweiten Stelle, eine "1".
Das Unschöne ist nun, dass im Falle des Nicht-Findens "FALSCH" zurückgeliefert wird.
Und das ist gleichbedeutend mit "0" (Kennst Du aus Bedingungen - will ich eine Gruppe während des Testens nicht anzeigen, kommt eine "0" in die Bedingung).
Unterscheiden könnte man die Index-Null und die FALSCH-Null nur durch den Operator "==="; den unterstützt LimeSurvey aber nicht.
Da,mit reicht also so etwas:
{if(strpos('#02359',QZ)>0,'Tralala','Trololo')}
Und wenn es dann eben mehr als 10 sind, werde kreativ.
Z.B. umrande die Zahlen mit Zeichen und suche dann nach dem Gesamtausdruck.
{if(strpos('#-1-2-4-5-7-8-10-12-14-15-',join('-',Q1,'-'))>0,1,0)}
Joffm
Volunteers are not paid.
Not because they are worthless, but because they are priceless