fala
fala

Reputation: 271

How can I use a select box in a form and submit the selected value?

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

Answers (4)

fala
fala

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

Murugan Vellaisamy
Murugan Vellaisamy

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

Qaisar Satti
Qaisar Satti

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

Sougata Bose
Sougata Bose

Reputation: 31739

Missing name attribute of select input.

<select name="option">

You can access it by -

$_POST['option'] // for POST method

Upvotes: 0

Related Questions