webForumDet fria alternativet

Hittar inte månaden i <select>

2 svar · 169 visningar · startad av FlashX

FlashXMedlem sedan nov. 19991 033 inlägg
#1

Förstår inte hur detta fungerar...
Jag har en droplist där man kan välja att läsa nyheter månadsvis.
Jag vill att månadens månad ska vara förvald i droplisten och har följande kod:

<select name="month">
<?
$manad = date("m");
if ($manad == 01) { echo ("<option value=\"01\" selected>januari</option>\n"); }
	else { echo ("<option value=\"01\">januari</option>\n"); }
if ($manad == 02) { echo ("<option value=\"02\" selected>februari</option>\n"); }
	else { echo ("<option value=\"02\">februari</option>\n"); }
if ($manad == 03) { echo ("<option value=\"03\" selected>mars</option>\n"); }
	else { echo ("<option value=\"03\">mars</option>\n"); }
if ($manad == 04) { echo ("<option value=\"04\" selected>april</option>\n"); }
	else { echo ("<option value=\"04\">april</option>\n"); }
if ($manad == 05) { echo ("<option value=\"05\" selected>maj</option>\n"); }
	else { echo ("<option value=\"05\">maj</option>\n"); }
if ($manad == 06) { echo ("<option value=\"06\" selected>juni</option>\n"); }
	else { echo ("<option value=\"06\">juni</option>\n"); }
if ($manad == 07) { echo ("<option value=\"07\" selected>juli</option>\n"); }
	else { echo ("<option value=\"07\">juli</option>\n"); }
if ($manad == 08) { echo ("<option value=\"08\" selected>augusti</option>\n"); }
	else { echo ("<option value=\"08\">augusti</option>\n"); }
if ($manad == 09) { echo ("<option value=\"09\" selected>september</option>\n"); }
	else { echo ("<option value=\"09\">september</option>\n"); }
if ($manad == 10) { echo ("<option value=\"10\" selected>oktober</option>\n"); }
	else { echo ("<option value=\"10\">oktober</option>\n"); }
if ($manad == 11) { echo ("<option value=\"11\" selected>november</option>\n"); }
	else { echo ("<option value=\"11\">november</option>\n"); }
if ($manad == 12) { echo ("<option value=\"12\" selected>december</option>\n"); }
	else { echo ("<option value=\"12\">december</option>\n"); }
?>
</select>

Det fungerar för alla månader utom augusti och september, då blir det ingen månad förvald, utan visar istället januar.
Om jag printar ut date("m"); så skrivs 08 men fungerar alltså inte i min droplist :(

Vad kan det bero på?

FlashXMedlem sedan nov. 19991 033 inlägg
#2

Typiskt. Det är alltid likadant...
Precis när jag kollade koden som jag klistrade in, så ser jag att man nog borde skriva fnuttar runt värdet

if ($manad == "01")

och visst, nu funkar det.

Märkligt dock att alla andra månader funkade förut fast inte just augusti och september.

LarsGMedlem sedan dec. 200012 464 inlägg
#3

Gissning bara, kan någon bekräfta.

Jag tror att om man skriver en inledande nolla så tolkas värdet som en oktal konstant.

Så 08 och 09 är ogiltiga oktala konstanter (som egentligen borde ge syntaxfel) och därför blir det något mismasch vid jämförelsen.

------------------
essentitia preter non sans multiplicandum

132 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)