Populating a drop down list control <select> from a php array is easy, the following function would do it with a breeze. Assuming an array of IT companies:
$companies = array(
'Microsoft' => 1,
'Google' => 2,
'Apple' => 3
);
Feed it as a parameter to the php function below:
function generateSelect($name = '', $options = array()) {
$html = '<select name="'.$name.'">';
foreach ($options as $option => $value) {
$html .= '<option value='.$value.'>'.$option.'</option>';
}
$html .= '</select>';
return $html;
}
with
$html = generateSelect('company', $companies);
you will get an HTML form select control as following:
<select name="company">
<option value="1">Microsoft</option>
<option value="2">Google</option>
<option value="3">Apple</option>
</select>
With data selected from SQL database, you will first convert the SQL results rows to php array and then use it with the generateSelect() function to generate HTML select control drop down list.

{ 5 comments… read them below or add one }
I get that; however, when you use mysql to read the info in the drop-down box, how to mark as selected without hardcoding something directly into html?
You mean, via javascript?
do you know how to change drop down list value when another drop down list changed?
something like this:
i have 2 drop down list,,
the 1st one is handphone brand
the 2nd one is mobile type..
the 2nd drop down list value depends on the 1st drop down list.
both of the drop down list got the value from mysql DB.
thx
I’m not sure how I’m supposed to get the dropdown box. Do I use
$html = generateSelect(‘company’, $companies);
or
Microsoft
Google
Apple
Sorry I meant to put in:
select name=”company”>
option value=”1″>MicrosoftGoogleApple</option
/select