Merkelig PHP problem!?

clinton4

Medlem
Hei,

Hvorfor blir ikke selected satt på måned 08 og 09 her!?

PHP:
<form name="form" method="post" action="">
  <select name="month" id="month">
    <option value="01"<?php if($_POST['month'] == 01){ echo " selected='selected'"; } ?>>Januar</option>
    <option value="02"<?php if($_POST['month'] == 02){ echo " selected='selected'"; } ?>>Februar</option>
    <option value="03"<?php if($_POST['month'] == 03){ echo " selected='selected'"; } ?>>Mars</option>
    <option value="04"<?php if($_POST['month'] == 04){ echo " selected='selected'"; } ?>>April</option>
    <option value="05"<?php if($_POST['month'] == 05){ echo " selected='selected'"; } ?>>Mai</option>
    <option value="06"<?php if($_POST['month'] == 06){ echo " selected='selected'"; } ?>>Juni</option>
    <option value="07"<?php if($_POST['month'] == 07){ echo " selected='selected'"; } ?>>Juli</option>
    <option value="08"<?php if($_POST['month'] == 08){ echo " selected='selected'"; } ?>>August</option>
    <option value="09"<?php if($_POST['month'] == 09){ echo " selected='selected'"; } ?>>September</option>
    <option value="10"<?php if($_POST['month'] == 10){ echo " selected='selected'"; } ?>>Oktober</option>
    <option value="11"<?php if($_POST['month'] == 11){ echo " selected='selected'"; } ?>>November</option>
    <option value="12"<?php if($_POST['month'] == 12){ echo " selected='selected'"; } ?>>Desember</option>
  </select>
  <input type="submit" name="button" id="button" value="Submit">
</form>
 

clinton4

Medlem
Men det fungerer jo med 01 til 07. Da bør jo 08 og 09 også fungere. Jeg har også prøvd å bruke '08' og "08", men samme problemet. Utrolig merkelige greier.
 

typisk

Utvikler
Men det fungerer jo med 01 til 07. Da bør jo 08 og 09 også fungere. Jeg har også prøvd å bruke '08' og "08", men samme problemet. Utrolig merkelige greier.
Nei, dette er ikke merkelig :) Tall med 0 foran er oktalt, dvs går fra 0-7. Når du skriver 08 gir det resultat NULL. Om du kjører koden i åpningsposten vil 08 og 09 bli selected, siden både $_POST['month'] og 08 & 09 resulterer NULL.
Du kan lese mer om dette her; PHP: Integers - Manual
 

clinton4

Medlem
Forresten, kanskje du kan gjøre meg smartere med denne også?

PHP:
<?php 
if($_POST['month'] == "12"){ echo " selected='selected'"; } elseif(date("m") == "12"){ echo " selected='selected'"; } 
?>

Dersom $_POST['month'] ikke er satt, skal den sette selected dersom vi er i mnd 12.
 

clinton4

Medlem
Fant ut av det.

PHP:
<?php if(isset($_POST['month']) and $_POST['month'] == "12"){ echo " selected='selected'"; } elseif(!isset($_POST['month']) and date("m") == "12"){ echo " selected='selected'"; } ?>
 
Topp