Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Probleme mit unexpected T_Case in verschachtelter Case/If-Combi

Empfohlene Antworten

Veröffentlicht

Hallo, ich habe folgendes Problem:


switch (value('TV02')) {
case 1: //Besuchsfrage für Privatler
if (value('TV04') == 2){
question('TV05');
} else {
if (value('TV06') == 2){
question('TV07');
} else {
if (value('TV08') == 2){
question('TV09');
} else {
if (value('TV10') == 2){
question('TV11');
} else {
if (value('TV12') == 2){
question('TV13');
} else {
if (value('TV14') == 2){
question('TV15');
} else {
if (value('TV16') == 2){
question('TV17');
} else {
goToPage('FBS6');
}
break;
case 2: //Weg zur Soziodemographie für Corporatler
goToPage('FBS6');
break;
case 3: //Bekanntheitsfrage für Misch-Accountler
if (value('TV01_01') == 2) {
question('TV04');
}
if (value('TV01_02') == 2) {
question('TV06');
}
if (value('TV01_03') == 2) {
question('TV08');
}
if (value('TV01_04') == 2) {
question('TV10');
}
if (value('TV01_05') == 2) {
question('TV12');
}
if (value('TV01_06') == 2) {
question('TV14');
}
if (value('TV01_07') == 2) {
question('TV16');
}
break;
}
[/PHP]

Es geht um den Bereich CASE 1:

Zum besseren Verständnis bitte unter

https://www.soscisurvey.de/twittermuseen/

testweise den Fragebogen ausfüllen (PW = test1)

Folgender Fall,

man wählt mindestens 1 Museum aus, bei Frage 1

man wählt "Privataccount" bei Frage 2

Die nächste Frage beanwortet man mit "JA" (also, man kennt das Museum schon). Klickt man jetzt auf "Weiter" kommt die Fehlermeldung...

Ich bin grad am verzweifeln... Vielleicht aber auch "nur" betriebsblind?

Danke für Eure Hilfe!

Gruß

Stefan

  • Autor

Danke für den Hinweis!

Also doch betriebsblind ;-)

Ich habe zudem festgestellt, dass ich so mein Problem gar nicht gelöst bekomme.

Ich muss es mit einer FOR-Schleife machen, leider funktioniert es noch nicht ganz, denn ich habe sicher noch einen Denkfehler darin.

Blöderweise kann man die Fragekennungen, die z.B. "TV01 - TV16" heißen können, nicht ändern. --> Die 01, 02, 03, 04... stört mich!!!


$items = 7; // Anzahl der auswählbaren Museen
$qk1 = 'TV0';
$qk2 = 'TV'; // Kennung der Frage
$zaehler_qk = 4; // interner Zähler für die Fragekennung

switch (value('TV02')) {
case 1: //Besuchsfrage für Privatler

for ($i=1; $i<=$items; $i++) // Schleife soll 7 Runden durchlaufen
{
for ($k=1; $k<=4; $k++) // im 1. bis 4. Durchlauf
{
$item=$qk1.$zaehler_qk; // ergibt z.B. TV04, bis zum 4. Durchlauf
if (value($item) == 2) // Prüfen, ob Frage mit "NEIN" beantwortet wurde, wenn ja, zeige nächste Frage an (z.B. TV05)
{
question($qk1.($zaehler_qk+1)); // Folgefrage mit ungerader Kennung ausgeben!
$zaehler_qk=($zaehler_qk+2); // internen Zähler un 2 erhöhen, damit im nächsten Durchlauf wieder eine Frage mit gerader Kennung bearbeitet werden kann
}
} // end for
for ($k=5; $k<=$items; $k++) // im 5. bis 7. Durchlauf
{
$item=$qk2.$zaehler_qk; // ergibt z.B. TV10, ab dem 5. Durchlauf
if (value($item) == 2)
{
question($qk2.($zaehler_qk+1));
$zaehler_qk=($zaehler_qk+2);
}
} // end for
} // end for
[/PHP]

So habe ich mir das gedacht, aber es funktioniert leider nicht...

Was mache ich falsch?

Er soll quasi in den ersten 4 Durchläufen die Kennung anders zusammensetzen, als in den restlichen. Und natürlich, wenn Fragen (mit der geraden Kennung), die mit "NEIN" beantwortet wurden, eine Folgefrage ausgeben (mit einer ungeraden Kennung), Wenn mehrere "gerade Fragen" mit "NEIN" beantwortet wurden, sollen natürlich auch mehrere "ungerade Folgefragen" ausgegeben werden.

ich verzweifle schon...

  • Autor

Problem ist mittlerweile gelöst!

In den Else-Zweigen muss der interne Zähler auch um 2 erhöht werden, sonst kommt er ja nicht weiter, falls eine vorher gestellte Frage mit "JA" beantwortet wurde...

Viele Grüße...

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.