Max: Variable mit "switch()" einen neuen Wert zuweisen

Hallo.
Ich habe mit folgendem Teil meines Scripts:

var Jetzt = new Date();
var Monat = Jetzt.getMonth();
var BilderMax;

switch(Monat)
   {
    case "2":
     BilderMax = 28;
     break;

case "6":
     BilderMax = 30;
     break;

case "7":
     BilderMax = 31;
     break;
    }
alert(BilderMax);

Als Meldung kommt jetzt aber nicht "6", sondern "undefined"........Was mache ich falsch?

Danke für jede Hilfe!

P.S.: Habs auch schon mit "var BilderMax = 30" usw. ausprobiert - klappt auch nicht. :(

  1. hallo,
    lass mal die anführungszeichen bei den switches weg..
    füge noch eine switch-anweisug die auf den wert 5 reagiert
    (der kommt nämlich bei deinem Monat raus) und schon
    funktinierts...
    switch(Monat)
    {
      case 2:
    [...]

    ....an die typen denken !

    mfg
    comunicout

    --
    fütter mein ego !
    welcome to electro-smog therapy
    1. füge noch eine switch-anweisug die auf den wert 5 reagiert

      Wenn mich nicht alles täuscht ist heute aber der 27.6. !!! Also brauch ich doch keine 5, oder?
      Danke für den Tipp. Werds direkt mal machen!

      1. hi,
        da haste irgendwie recht... bei mir kam pardaler weise ne 5 raus...
        wart mal kurz... ne, win hab ich auch korrekt eingestellt... hmm
        hab deinen funktion jetzt nicht mehr so vor augen.. passte da denn
        alles ? zumidest läuft sie schonmal.. ohne anführungsstriche...

        mfg
        comunicout

        --
        fütter mein ego !
        welcome to electro-smog therapy
        1. Jetzt läuft alles super!
          Das mit dem Array macht Sinn...
          Danke schonmal.

          Hast du auch ne Antwort auf folgende Frage?

          Kann man switch()-Fallunterscheidungen (ich weiß nicht wie ich sonst dieses "case X" nennen soll) auch mit oder-Operatoren verknüpfen?
          Also:
          case 3||4: blablabla ?

          Bei mir klappt das nicht....
          Muss ich da jetzt für jeden Monat einen einzelnen Case-Befehl eingeben?

          1. Hallo Max,

            Kann man switch()-Fallunterscheidungen (ich weiß nicht wie ich sonst dieses "case X" nennen soll) auch mit oder-Operatoren verknüpfen?

            Fallunterscheidung ist ok.

            Also:
            case 3||4: blablabla ?

            Nicht ganz, aber Du kannst schreiben:

            case 3:
            case 4:
             // tuwas
            case 5:
            case 6:
             // tuwasanderes

            Grüße
            Andreas

            --
            Hier könnte Ihre Werbung stehen.
            1. hi andreas,
              die sache mit dem case 2||3 funktioniert aber..
              siehe beitrag ?t=50811&m=278635...
              mfg
              comunicout

              --
              fütter mein ego !
              welcome to electro-smog therapy
              1. Hallo comunicout,

                siehe beitrag [pref:t=50811&m=278635]...

                Das ist php. Damit kenne ich mich nicht aus. In diesem Thread ist aber von Javascript die Rede.

                Grüße
                Andreas

                --
                related links:
                </faq/#Q-19> Links setzen
                1. hi,
                  danke für den hinweis.. dann ist der thread wohl ein wenig durcheinander gelaufen...
                  (JavaScript=>PHP)...
                  aber wurscht, max hat verstanden was ich meinte und es funktioniert nun ;)

                  mfg
                  comunicout

                  --
                  fütter mein ego !
                  welcome to electro-smog therapy
                  1. Soo. Also das mit dem case 3||4 hat bei mir nicht geklappt - kann sein, dass da was anderes auch nicht gestimmt hat, da er das gesamte Script nicht geladen hat. Als ich das dann in case 3: blabla case 4: usw. geändert habe, gings.
                    @ communicout: Deine erste Lösung habe ich jetzt nicht ausprobiert, da das ja irgendwie nicht JS ist, oder? Sieht mit nach PHP oder Cgi aus, und das kann ich leider (noch ;)) nicht. Ich hätte sie zwar einfach so übernehmen können - aber dann hätte ich nix gelernt und obs geklappt hätte wäre ne andere Frage. Trotzdem Danke.

                    @Andreas Schneider: Wie oben schon beschrieben, nehme ich im Mom. den umständlichen Weg. Gut zu wissen, dass es auch noch anders geht. Ich werde das bei Gelegenheit noch ändern. Auch dir "Danke"!

                    Fazit: Jetzt klappt alles.

                    P.S.: Um den Zusammenhang herzustellen: Ich baue im Mom. einen Pic-Of-The-Day-Kalender mit JS. Klappt auch ganz gut, nur meinte ein Bekannter, dass es mit Opera und Netscape nicht funktioniert....naja, ich werde diesbezüglich mal irgendwann einen neuen Thread starten.
                    Design habe ich übrigens noch nicht gemacht - ist jetzt 0815-Design.
                    http://www.mastershrimp.com/kalender/Kalender.html (wenn ihr's mal sehen wollt)

                    Nochmals Danke!
                    MfG
                    Max

                    1. Design habe ich übrigens noch nicht gemacht - ist jetzt 0815-Design.
                      http://www.mastershrimp.com/kalender/Kalender.html (wenn ihr's mal sehen wollt)

                      Die Fehlermeldung im Moziall lautet:
                      Error: AlleBilder is not defined
                      Source File: http://www.mastershrimp.com/kalender/Kalender.js
                      Line: 105

                      Ich habe noch ein switch/case Block gebraucht, die einzigen die das ständig tun sind VB Programmierer. Fast alles kann man mit Arrays schneller und übersichtlicher machen, so auch in deinem Programm.

                      Dieser ganze switch Block:
                        switch(MonatNr)
                         {
                          case 1:
                           BilderMax = 31;
                           break;

                      case 2:
                           BilderMax = 28;
                           break;

                      case 3:
                           BilderMax = 31;
                           break;

                      case 4:
                           BilderMax = 30;
                           break;

                      case 5:
                           BilderMax = 31;
                           break;

                      case 6:
                           BilderMax = 30;
                           break;

                      case 7:
                           BilderMax = 31;
                           break;

                      case 8:
                           BilderMax = 31;
                           break;

                      case 9:
                           BilderMax = 30;
                           break;

                      case 10:
                           BilderMax = 31;
                           break;

                      case 11:
                           BilderMax = 30;
                           break;

                      case 12:
                           BilderMax = 31;
                           break;

                      läßt sich in zwei Zeilen zusammen fassen:

                      var m_arry = new Array(31,28,31,30,31,30,31,31,30,31,30,31)
                      BilderMax = m_array[MonatNr];

                      Struppi.

          2. hi,
            also die switch/case anweisung ist ja schon eine erhebliche vereinfachung
            gegenüber der If-Then-Else-Else-Else... methode.

            aber probier mal folgendes (bei mir lokal getestet):
            <?
                  $a = 1;
                  switch($a) {
                    case 0:
                     $new = "erste variante";
                     break;
                   case 1||2:
                    $new = "zweite variante";
                    break;
                  }
                  echo $a."<br>=> ".$new;
             ?>

            ...erfolgreich ?

            mfg
            comunicout

            --
            fütter mein ego !
            welcome to electro-smog therapy
      2. Wenn mich nicht alles täuscht ist heute aber der 27.6. !!! Also brauch ich doch keine 5, oder?

        Ups. Hab mich geirrt. Habs gerade mal mit alert() abgefragt. Warum kommt da bitte ne 5 und keine 6 ??? Heute ist doch der x.6., oder wie jetzt???

      3. hi,
        der monatsarray beginnt wie üblich bei 0.
        daher die 5 für den heutigen monat...

        --
        fütter mein ego !
        welcome to electro-smog therapy