Help please with change to code - if - else if - else

Help please with changing the code, as I have added 2 more genders:

Current Code working well:

<?php 
        if($user->gender == 'Male') {
           echo '<option value="Male" selected> '.$lang['Male'].' </option>';
           echo '<option value="Female"> '.$lang['Female'].' </option>';
         } else {
           echo '<option value="Female" selected> '.$lang['Female'].' </option>';
           echo '<option value="Male"> '.$lang['Male'].' </option>';
         }
 ?>

My code with added genders, not working:

     if ($user->gender == 'Male') {
         echo '<option value="Male" selected> '.$lang['Male'].' </option>';
       } 
                                                    
    else if ($user->gender == 'Female') {
         echo '<option value="Female" selected> '.$lang['Female'].' </option>';
      } 
                                                    
    else if ($user->gender == 'Couple') {
         echo '<option value="Couple" selected> '.$lang['Couple'].' </option>';
      } 
                                                     
    else  {
         echo '<option value="TG/TV/TS" selected> '.$lang['TG/TV/TS'].' </option>';
      }

you are not providing any information about what you want to achieve and what “not working” means - what is the expected result?

as a guess: if you want some item marked in a list of litems use something like this:

$genders = ['male', 'female', 'couple', 'tg/tv/ts'];
$options = [];

foreach($genders as $gender){
	$selected = ($user->gender == $gender) ? 'selected="selected"' : '' ;
	$options[] = sprintf('<option value="%s" %s>%s</option>', $gender, $selected, $lang[$gender]);
}
1 Like

Thank you Chorn for your reply and suggestion.

I went for a walk, and the penny dropped, all working correctly now :slight_smile:

<?php 
    if ($user->gender == 'Male') {
    echo '<option value="Male" selected> '.$lang['Male'].' </option>';
    echo '<option value="Female"> '.$lang['Female'].' </option>';
    echo '<option value="Couple"> '.$lang['Couple'].' </option>';
    echo '<option value="TG/TV/TS"> '.$lang['TG/TV/TS'].' </option>';
    } 
   else if ($user->gender == 'Female') {
   echo '<option value="Female" selected> '.$lang['Female'].' </option>';
   echo '<option value="Male"> '.$lang['Male'].' </option>';    
   echo '<option value="Couple"> '.$lang['Couple'].' </option>';
   echo '<option value="TG/TV/TS"> '.$lang['TG/TV/TS'].' </option>';
   } 
   else if ($user->gender == 'Couple') {
   echo '<option value="Couple" selected> '.$lang['Couple'].' </option>';
   echo '<option value="Male"> '.$lang['Male'].' </option>';    
   echo '<option value="Female"> '.$lang['Female'].' </option>';
   echo '<option value="TG/TV/TS"> '.$lang['TG/TV/TS'].' </option>';
    } 
   else  {
   echo '<option value="TG/TV/TS" selected> '.$lang['TG/TV/TS'].' </option>';
   echo '<option value="Male"> '.$lang['Male'].' </option>';
   echo '<option value="Female"> '.$lang['Female'].' </option>';                                                    
   echo '<option value="Couple"> '.$lang['Couple'].' </option>';    
   }
   ?>

This topic was automatically closed 91 days after the last reply. New replies are no longer allowed.