From the database I pull back the user information and based on this I can determine the correct index value using a case statement:
<?php
$genderIndex = 0;
switch ($displayProperties['gender'])
{
case "":
$genderIndex = 0;
break;
case "Male":
$genderIndex = 1;
break;
case "Female":
$genderIndex = 2;
break;
case "Other":
$genderIndex = 3;
break;
}
?>
On the form I have an HTML dropdown (select):
<select name="gender" selectedIndex="<?php echo $genderIndex; ?>">
<option value="0"> </option>
<option value="Male">Male</option>
<option value="Female">Female</option>
<option value="Other">Other</option>
</select><br/>
The problem is it never works and always loads the page at index=0 and I made sure to verify if $genderIndex actually has the expected value (it does).
What am I doing wrong?
selectedindex property is not used in this way, for appropriate use of the selectedindex property you can view http://www.w3schools.com/jsref/prop_select_selectedindex.asp.
Instead what you are after is applying the “selected” attribute to the appropriate option. The code below runs some shorthand if/else checks and will apply the “selected” attribute where appropriate, based on your $genderIndex you created in your function given.