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
162 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
ID: 18789496
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
ID: 18789525
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
ID: 18789535
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

Free Tool: Postgres Monitoring System

A PHP and Perl based system to collect and display usage statistics from PostgreSQL databases.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Deprecated and Headed for the Dustbin By now, you have probably heard that some PHP features, while convenient, can also cause PHP security problems.  This article discusses one of those, called register_globals.  It is a thing you do not want.  …
Since pre-biblical times, humans have sought ways to keep secrets, and share the secrets selectively.  This article explores the ways PHP can be used to hide and encrypt information.
The viewer will learn how to dynamically set the form action using jQuery.
The viewer will learn how to count occurrences of each item in an array.

828 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