NYCPHP Meetup

NYPHP.org

[nycphp-talk] Remembering which option in a SELECT the user picked.

Hans Zaunere zaunere at yahoo.com
Wed Jan 29 16:38:31 EST 2003


--- Webapprentice <webapprentice at onemain.com> wrote:
> Hello NYPHP group,
> I'm searching for an answer to this, that I don't find in the usual 
> resources (i.e. PHP cookbook, www.php.net).  My PHP skill is novice at 
> best, so I could use some help.
> 
> 
> I have a SELECT on a web form.
> 
> <select name="TimeChoice">
> <option value="Friday August 22, 04:00 PM - 06:00 PM">Friday August 22, 
> 04:00 PM - 06:00 PM</option>
> <option value="Friday August 22, 06:00 PM - 08:00 PM">Friday August 22, 
> 06:00 PM - 08:00 PM</option>
> <option value="Friday August 22, 08:00 PM - 10:00 PM">Friday August 22, 
> 08:00 PM - 10:00 PM</option>
> <option value="Friday August 22, 10:00 PM - 12:00 AM">Friday August 22, 
> 10:00 PM - 12:00 AM</option>
> <option value="Saturday August 23, 12:00 AM - 02:00 AM">Saturday August 
> 23, 12:00 AM - 02:00 AM</option>
> <option value="Saturday August 23, 12:00 PM - 02:00 PM">Saturday August 
> 23, 12:00 PM - 02:00 PM</option>
> <option value="Saturday August 23, 02:00 PM - 04:00 PM">Saturday August 
> 23, 02:00 PM - 04:00 PM</option>
> <option value="Saturday August 23, 04:00 PM - 06:00 PM">Saturday August 
> 23, 04:00 PM - 06:00 PM</option>
> <option value="Saturday August 23, 06:00 PM - 08:00 PM">Saturday August 
> 23, 06:00 PM - 08:00 PM</option>
> <option value="Saturday August 23, 08:00 PM - 10:00 PM">Saturday August 
> 23, 08:00 PM - 10:00 PM</option>
> <option value="Saturday August 23, 10:00 PM - 12:00 AM">Saturday August 
> 23, 10:00 PM - 12:00 AM</option>
> <option value="Sunday August 24, 12:00 AM - 02:00 AM">Sunday August 24, 
> 12:00 AM - 02:00 AM</option>
> <option value="Sunday August 24, 12:00 PM - 02:00 PM">Sunday August 24, 
> 12:00 PM - 02:00 PM</option>
> <option value="Sunday August 24, 02:00 PM - 04:00 PM">Sunday August 24, 
> 02:00 PM - 04:00 PM</option>
> </select>

Just my opinion, but to reduce processing and possible error, you may want to
consider making the value= some sort of shorter representation of the value
you're after.  This is really pedantic, though.

> Only one option may be chosen.
> 
> When I submit this form, there could be errors.  When I have errors, I 
> wish to reprint the form with the user's values remembered.  In the 
> reprinted SELECT tag, one of the OPTION tags will now have a SELECTED 
> attribute.  Is there any elegant way to insert the SELECTED attribute on 
> the right option?
> 
> I've been running into this situation a lot.

Same here, so I wrote a silly little function:


function is_selected( $val,$val1 ) {
   if( $val == $val1 )
      return " SELECTED value=\\"$val1\\" ";
   else
      return " value=\\"$val1\\" ";
}

which I use along these lines:

<select name=respon>
  <option <?=is_selected($_POST['respon'],'one')?> One! </option>
  <option <?=is_selected($_POST['respon'],'two'> Two! </option>
  <option <?=is_selected($_POST['respon'],'three')?> Three! </option>
  <option <?=is_selected($_POST['respon'],'four')?> Four! </option>
</select>



=====
Hans Zaunere
President, New York PHP
http://nyphp.org
hans at nyphp.org



More information about the talk mailing list