F FlashX Medlem sedan nov. 1999 1 033 inlägg Frågan 7 aug. 2001 08:51 #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å?
F FlashX Medlem sedan nov. 1999 1 033 inlägg 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.
L LarsG Medlem sedan dec. 2000 12 464 inlägg 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