Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Optimize dropdown with default value grabbed from SQL?

I have a dropdown for province, with the default value being determined based on a user's province grabbed from SQL:

$getProvince = $db->prepare("
    SELECT province
        FROM users
        WHERE userid = :id
");
$getProvince->execute(array(
    ':id' => $_SESSION["userident"]
));
$province = $getProvince->fetchColumn();

<select name="addprov">
    <option value="AB" <?php if ($province == "AB") { echo "selected='selected'"; } ?>>Alberta</option>
    <option value="BC" <?php if ($province == "BC") { echo "selected='selected'"; } ?>>British Columbia</option>
    <option value="MB" <?php if ($province == "MB") { echo "selected='selected'"; } ?>>Manitoba</option>
    <option value="NB" <?php if ($province == "NB") { echo "selected='selected'"; } ?>>New Brunswick</option>
    <option value="NFLD" <?php if ($province == "NFLD") { echo "selected='selected'"; } ?>>Newfoundland & Labrador</option>
    <option value="NS" <?php if ($province == "NS") { echo "selected='selected'"; } ?>>Nova Scotia</option>
    <option value="ON" <?php if ($province == "ON") { echo "selected='selected'"; } ?>>Ontario</option>
    <option value="PEI" <?php if ($province == "PEI") { echo "selected='selected'"; } ?>>Prince Edward Island</option>
    <option value="QC" <?php if ($province == "QC") { echo "selected='selected'"; } ?>>Quebec</option>
    <option value="SK" <?php if ($province == "SK") { echo "selected='selected'"; } ?>>Saskatchewan</option>
</select>

You can see how ugly this is. Is there a method to optimize this so it's not so hard on the eyes?

like image 473
gator Avatar asked Jun 21 '26 19:06

gator


1 Answers

Stick your options in an array, then loop the html output.

$provinces = array(
    'AB' => 'Alberta',
    'BC' => 'British Columbia',
    'MB' => 'Manitoba',
    //...
);

$province = ''; // your query result

Then for the output...

<select name="addprov">
    <?php foreach ($provinces as $key => $value): ?>
    <option value="<?php echo $key; ?>" <?php if ($province === $key): ?>selected="selected"<?php endif; ?>><?php echo $value; ?></option>
    <?php endforeach; ?>
</select>
like image 136
diggersworld Avatar answered Jun 23 '26 10:06

diggersworld



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!