Page 1 of 1

a little help with this

Posted: Sat Feb 25, 2006 3:10 pm
by s.dot
I want to select a form element based on two criteria

1) if its set in $_GET, then check it
2) if its not set in get, but set in a cookie, check it
3) if neither is set, check the default (choice 3)

It seems to always be reading from the cookie

Code: Select all

<input type="radio" name="gender" value="1" <?php
if(isset($_GET['gender']) && ($_GET['gender'] == 1)){
	echo "checked";
} ELSE {
	if((isset($cookie_data['gender'])) && ($cookie_data['gender'] == 1)){
		echo "checked";
	}
}
?>> Males<br />


<input type="radio" name="gender" value="2" <?php
if(isset($_GET['gender']) && ($_GET['gender'] == 2)){
	echo "checked";
} ELSE {
	if((isset($cookie_data['gender'])) && ($cookie_data['gender'] == 2)){
		echo "checked";
	}
}
?>> Females<br />


<input type="radio" name="gender" value="3" <?php
if(isset($_GET['gender']) && ($_GET['gender'] == 3)){
	echo "checked";
} ELSE {
	if(isset($cookie_data['gender']) && ($cookie_data['gender'] == 3)){
		echo "checked";
	} ELSE {
		if(!isset($_GET['gender']) && !isset($cookie_data['gender'])){
			echo "checked";
		}
	}
}
?>> Anyone

Posted: Sat Feb 25, 2006 3:29 pm
by Benjamin

Code: Select all

function return_gender($gender) {
  switch ($gender) {
    case 1:
      $checked = "checked"; //male
      break;
    case 2:
      $checked = ""; //female
      break;
    default:
      $checked = ""; //?
      // ummmm
  }
  return $checked;
}

if (isset($_GET['gender'])) {
  echo return_gender($_GET['gender']);
} elseif (isset($cookie_data['gender']))  {
  echo return_gender($cookie_data['gender']);
} else {
  echo ""; // it's not set in either
}
Don't know if that will help or not. Hope it does.