Variable mit "switch()" einen neuen Wert zuweisen
Max
- javascript
0 comunicout0 Max0 comunicout0 Max
0 Max0 comunicout
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. :(
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ü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!
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
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?
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
hi andreas,
die sache mit dem case 2||3 funktioniert aber..
siehe beitrag ?t=50811&m=278635...
mfg
comunicout
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
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
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
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.
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
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???
hi,
der monatsarray beginnt wie üblich bei 0.
daher die 5 für den heutigen monat...