ahh...
I think you want to invoke a javascript call with the onchange trigger.
<html>
<body>
<form name="myform" action="?" method="GET">
<div id="mainbody" style="background:<?php echo @$_GET["color"]; ?>">
change background color:
<select name="color" onchange="document.all.mainbody.style.background=this.value;">
<?php
$allcolors = array(
"blue" => "Blue",
"red" => "Red",
"green" => "Green"
);
while (list($syscolor, $showcolor) = each($allcolors))
{
echo "<option value=\"{$syscolor}\" ".(@$_GET["color"]==$syscolor? " selected=\"selected\"":""). ">{$showcolor}</option>\n";
}
?>
</select>
<input type="button" name="anything" value="Refresh" onclick="submit();" />
</div>
</form>
</body>
</html>
If you refresh the screen it will remember but to make it remember per user or per session depends on the tools you will use to extend the memory (cookies or sessions).