Reputation: 1133
Here is the static dropdown:
<select style="width:100px" name="drink_type">
<option value="Water">Water</option>
<option value="Soda">Soda</option>
<option value="Milk">Milk</option>
</select>
I have a dynacim drink type saved as a string in a php variable $drink_type
. On object edit I would like to set a selected dropdown value according to $drink_type
.
Finding the most standard way would be the best case.
Upvotes: 0
Views: 66
Reputation: 1391
Here it is, (with a little shortcut):
foreach(array('Water', 'Soda', 'Milk') as $value){
echo "<option value=\"$value\" ";
if($property_name == $value)
echo "selected=\"true\"";
echo ">$value</option>";
}
Upvotes: 3
Reputation: 513
Try it.
<select name="types">
<?php
$select_value="water";
$drinks = array('Water', 'Soda', 'Milk');
foreach ($drinks as $value) {
$selected=$value==$select_value? " selected":"";
echo '<option value="' . $value . '" '.$selected.' >' . $value . '</option>';
}
?>
</select>
Or If you have database table then you can use below code
--Start--
function itemList($set=""){
// write user query
$query = "SELECT id,name FROM table_name WHERE 1 ORDER BY `name`";
$result = mysql_query($query);
$selected_id=5;
if(mysql_num_rows($result)>0){
echo '<select name="types">';
while($data = mysql_fetch_array($query)){
$value = $data['id'];
$selected = $value == $selected_id ? ' selected="selected"' : '';
echo '<option value="$value" '.$selected.'>' . $data['name'] . ' </option>';
} // end while loop
echo '</select>';
} // end if condition
} // end function
--End--
Upvotes: 1
Reputation: 616
You need to check for each element if the value of the select is equal to $drink_type
<option value="Water" <?php if ($drink_type == 'Water') echo 'selected="selected"' ?>>Water</option>
As you can see, this is a lot of stuff to write for longer selects, so you should probably store your values in an array and loop through them.
<select name="drink_type">
<?php
$values = array('Water', 'Soda', 'Milk');
foreach ($values as $value) {
$selected = ($value == $drink_type) ? ' selected="selected"' : '';
echo '<option value="' . $value . '"' . $selected . '>' . $value . '</option>';
}
?>
</select>
Upvotes: 1
Reputation: 792
You can check $drink_type
and use the selected
attribute.
<select style="width:100px" name="drink_type">
<option value="Water" <?php if($drink_type == 'Water') echo 'selected'; ?>>Water</option>
<option value="Soda" <?php if($drink_type == 'Soda') echo 'selected'; ?>>Soda</option>
<option value="Milk" <?php if($drink_type == 'Milk') echo 'selected'; ?>>Milk</option>
</select>
Upvotes: 2