Reputation: 447
I am currently trying to set the default value of a element in HTML with data from an SQL database. I have loaded the values from the database into variables. This is what I have done so far:
<div class="form-group">
Gender: <select class="form-control" name="gender" value="<?php echo $user['gender'] ?>">
<option value="female">Female</option>
<option value="male">Male</option>
<option value="none" selected>Prefer not to say</option>
</select>
</div>
However when I load the page, the default value is "Prefer not to say" when the value stored in $user['gender'] is "male".
Upvotes: 2
Views: 1509
Reputation: 94642
You need to add the selected
attribute to the option that matches what was in $user['gender']
<div class="form-group">
Gender:
<select class="form-control" name="gender">
<option value="female" <?php echo $user['gender'] == 'female' ? ' selected ' : '';?>>Female</option>
<option value="male" <?php echo $user['gender'] == 'male' ? ' selected ' : '';?>>Male</option>
<option value="none" <?php echo $user['gender'] == 'none' ? ' selected ' : '';?>>Prefer not to say</option>
</select>
</div>
Which is a shorter way of saying
<div class="form-group">
Gender:
<select class="form-control" name="gender">
<?php
if ($user['gender'] == 'female' ) {
?>
<option value="female" selected>Female</option>
<option value="male">Male</option>
<option value="none">Prefer not to say</option>
<?php
}
if ($user['gender'] == 'male' ) {
?>
<option value="female">Female</option>
<option value="male" selected>Male</option>
<option value="none">Prefer not to say</option>
<?php
}
if ($user['gender'] == 'none') {
?>
<option value="female">Female</option>
<option value="male">Male</option>
<option value="none" selected>Prefer not to say</option>
<?php
}
?>
</select>
</div>
Upvotes: 1