Reputation: 271
I have a form with an input field. It works very well. When I write something into the input field and click submit, the value is stored into my database:
<form action="update.php?id=<?php echo $id?>" method="post">
<input name="option" type="text" value="<?php echo !empty($option)?$option:'';?>">
<button type="submit">Submit</button>
</form>
But I don't need an input field, I need a select box instead. I tried this, but it is not working:
<form action="update.php?id=<?php echo $id?>" method="post">
<select>
<?php
$default = "No";
$options = array("Yes","No");
foreach($options as $val) {
echo ($val == $default) ? "<option selected=\"selected\" value=\"$val\">$val</option>":"<option value=\"$val\">$val</option>";
}
?>
</select>
<button type="submit">Submit</button>
</form>
Do you have an idea what I did wrong?
Upvotes: 2
Views: 508
Reputation: 271
I finally found the answer:
<select name="option">
<option <?php if ($option == Yes ) echo 'selected'; ?> value="Yes">Yes</option>
<option <?php if ($option == No ) echo 'selected'; ?> value="No">No</option>
</select>
Upvotes: 0
Reputation: 344
// sample code if you need call the value from database here for static value
<form action="update.php?id=<?php echo $id?>" method="post" >
<select name="option">
<option value="PHP" <?php if($options=="PHP") echo 'selected="selected"'; ?> >PHP</option>
</select>
<button type="submit">Submit</button>
</form>
Upvotes: 0
Reputation: 2762
missing name
in select
<select name="option">
<?php
$default = "No";
$options = array("Yes","No");
foreach($options as $val) {
echo ($val == $default) ? "<option selected=\"selected\" value=\"$val\">$val</option>":"<option value=\"$val\">$val</option>";
}
?>
</select>
Upvotes: 1
Reputation: 31739
Missing name
attribute of select
input.
<select name="option">
You can access it by -
$_POST['option'] // for POST method
Upvotes: 0