Linkjuice57
Linkjuice57

Reputation: 3771

If dropdown menu is selected

I'm switching from radio buttons <input type="radio" /> to a dropdown menu <select><option value="">~.

With the radio's I do the following:

<input type="radio" name="datumaflevering" value="1 week" <?php if ($row['datumaflevering'] == '1 week') { echo 'checked="checked"';}?> onDblClick="this.checked=false;"/> &nbsp;1

Notice the PHP statement. If the date is already in the database it sets it as checked. Can I do this with dropdown menu's as well?

<select size="1" name="datumaflevering" id="t3">
        <option value="1 week" name="datumaflevering">1 week</option>
        <option value="2 weken" name="datumaflevering">2 weken</option>
        <option value="3 weken" name="datumaflevering">3 weken</option>
        <option value="4 weken" name="datumaflevering">4 weken</option>
        <option value="5 weken" name="datumaflevering">5 weken</option>
        <option value="6 weken" name="datumaflevering">6 weken</option>
        <option value="7 weken" name="datumaflevering">7 weken</option>
        <option value="8 weken" name="datumaflevering">8 weken</option>
        <option value="9 weken" name="datumaflevering">9 weken</option>
        <option value="10 weken" name="datumaflevering">10 weken</option>
        <option value="11 weken" name="datumaflevering">11 weken</option>
        <option value="12 weken" name="datumaflevering">12 weken</option>
        <option value="13 weken" name="datumaflevering">13 weken</option>
        <option value="14 weken" name="datumaflevering">14 weken</option>
    </select>

?

Upvotes: 1

Views: 3957

Answers (6)

axel.michel
axel.michel

Reputation: 5774

Put your options in an array, and while looping you can compare the value of each option with your $row to add the required html:

<?php
    // your value array...
    $selectOptions = array('1 week','2 weken','...');
?>
<select size="1" name="datumaflevering" id="t3">
    <?php foreach($selectOptions as $opt): 
        $selected = ($opt === $row['datumaflevering']) ? ' selected="selected"' : '';
    ?>
    <option value="<?php echo $opt;?>" name="datumaflevering"<?php echo $selected?>><?php echo $opt;?></option>
    <?php endforeach; ?>
</select>
?>

Upvotes: 1

Codesen
Codesen

Reputation: 7842

Better to write a loop in PHP

<select size="1" name="datumaflevering" id="t3">

<?php
           for($i =1 ;$i < 15;$i++) {
                 $selected = ($row['datumaflevering'] == '$i weekn') ? 'selected':'';
                 echo "<option value='$i weken' $selected name='datumaflevering'>$i weken";
           }
?>


</select>

Upvotes: 1

Djentleman
Djentleman

Reputation: 1157

You can indeed. All you have to change is echo 'checked="checked"' to echo 'selected' (or echo 'selected="selected"' if using XHTML).

Upvotes: 1

gherkins
gherkins

Reputation: 14985

you could do:

<option<?php echo ($row['datumaflevering'] == '1 week')? ' selected="selected" : '' ?>>
   Option
</option>

for each option...

Upvotes: 1

Sudhir Bastakoti
Sudhir Bastakoti

Reputation: 100205

something like:

<select size="1" name="datumaflevering" id="t3" onchange="this.selected=true;">
<option value="1 week" name="datumaflevering" <?php if ($row['datumaflevering'] == '1 week') { ?> selected = "selected" <?php } ?>>1 week</option>
...
</select>

Upvotes: 1

Edwin Alex
Edwin Alex

Reputation: 5108

Yes..

<select size="1" name="datumaflevering" id="t3">
        <option value="1 week" name="datumaflevering" <?php if ($row['datumaflevering'] == '1 week') { ?> selected = "selected" <?php } ?>>1 week</option>
        <option value="2 weken" name="datumaflevering">2 weken</option>
        <option value="3 weken" name="datumaflevering">3 weken</option>
        <option value="4 weken" name="datumaflevering">4 weken</option>
        <option value="5 weken" name="datumaflevering">5 weken</option>
        <option value="6 weken" name="datumaflevering">6 weken</option>
        <option value="7 weken" name="datumaflevering">7 weken</option>
        <option value="8 weken" name="datumaflevering">8 weken</option>
        <option value="9 weken" name="datumaflevering">9 weken</option>
        <option value="10 weken" name="datumaflevering">10 weken</option>
        <option value="11 weken" name="datumaflevering">11 weken</option>
        <option value="12 weken" name="datumaflevering">12 weken</option>
        <option value="13 weken" name="datumaflevering">13 weken</option>
        <option value="14 weken" name="datumaflevering">14 weken</option>
    </select>

Upvotes: 1

Related Questions