Solved

Insert 'selected="selected" ' into HTML of Option List in Page Populated by MySQL, to Indicate Which Option Was Previously Selected, According to the Value Currently Stored in MySQL

Posted on 2007-03-25
3
159 Views
Last Modified: 2013-12-13
In an edit/update form to update an existing record in MySQL, the form inputs are populated from the database.  How do I code it to show which option was already selected in a dropdown option box?  

For example, if the select box html is:

<select name="Comedian">
      <option value="">Select Comedian</option>
      <option value="Curly">Curly</option>
      <option value="Larry">Larry</option>
      <option value="Moe">Moe</option>
</select>

and the the $Comedian variable from MySQL = "Larry", how do I make the list echo like:

      <option value="">Select Comedian</option>
      <option value="Curly">Curly</option>
      <option selected="selected" value="Larry">Larry</option>
      <option value="Moe">Moe</option>

where Larry's row contains   selected="selected" ?

Note: I'm not currently populating the entire list of options from MySQL; they're hard-coded into the html form and will not need to change.  The list is currently in a plain-HTML portion of the page, and any php echos in that part are currently like <?php echo $var; ?> .  Is there a way to make php insert the  'selected="selected" ' in the right row of the html list without having to populate the entire list from MySQL?
0
Comment
Question by:Randall-B
  • 2
3 Comments
 
LVL 11

Accepted Solution

by:
JamesCssl earned 250 total points
Comment Utility
You could hard code that as well:

<select name="Comedian">
      <option value="">Select Comedian</option>
      <option value="Curly" <?php echo ($Comedian=='Curly')?'selected="selected"':'';?>>Curly</option>
      <option value="Larry" <?php echo ($Comedian=='Larry')?'selected="selected"':'';?>>Larry</option>
      <option value="Moe" <?php echo ($Comedian=='Moe')?'selected="selected"':'';?>>Moe</option>
</select>
0
 
LVL 11

Expert Comment

by:JamesCssl
Comment Utility
On my site, I did something like the following:

<?php
function contactEntity($entityName, $formalName, $entityEmail) {
      global $contactOptions, $userRecipient;
      $contactOptions .= '<option value="' . $entityName . '" ' .
            (($userRecipient==$entityName)?'selected="selected"':'') .'>' . $formalName . '</option>';
}


      # start list of possible recipients
      contactEntity('person1','First1 Last1','email1@example.com');
      contactEntity('person2','First2 Last2','email2@example.com');
      contactEntity('person3','First3 Last3','email3@example.com');
      echo $contactOptions;
?>

where $userRecipient holds the value of the selected option, and the string of options is built by multiple calls to the function
            
0
 

Author Comment

by:Randall-B
Comment Utility
Great. Your first response is exactly what I was looking for, and I may look into using the format from your second comment. Thanks.
0

Featured Post

How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

Join & Write a Comment

I imagine that there are some, like me, who require a way of getting currency exchange rates for implementation in web project from time to time, so I thought I would share a solution that I have developed for this purpose. It turns out that Yaho…
This article discusses how to create an extensible mechanism for linked drop downs.
The viewer will learn how to count occurrences of each item in an array.
The viewer will learn how to look for a specific file type in a local or remote server directory using PHP.

771 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

12 Experts available now in Live!

Get 1:1 Help Now