I want the value of the dropdown menu to stay when form is submitted. However, this dropdown menu is created entirely by PHP rather than individual hand-typed values.
<?php
echo '<select name="month"><option>Month</option>';
for($i = 1; $i <= 12; $i++) {
$i = str_pad($i, 2, 0, STR_PAD_LEFT);
echo "<option value='$i'>$i</option>";
}
echo '</select>';
Is there a way to have the selected="selected" on the value the user selects?
I have a version for "years" too, and it has 100 values. So I'm looking for a way to do this without having to hand-type values.
When you're looping through, check if the submitted value equals the current value. If it does, select it:
for($i = 1; $i <= 12; $i++) {
$i = str_pad($i, 2, 0, STR_PAD_LEFT);
if ($i == $_POST["month"]) {
echo "<option value='$i' selected>$i</option>";
} else {
echo "<option value='$i'>$i</option>";
}
}
What about ordinary check:
...
for(....) {
printf("<option %s value='{$i}'>{$i}</option>",
($i == $_POST['month']) ? 'selected' : '');
}
}