Re: how to create multiple selects within php
| From: | Brian | Date: | Mon, 18 Oct 2004 15:11:13 +0000 |
| Subject: | Re: how to create multiple selects within php | ||
| References: | 1 2 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-199733@lists.php.net to get a copy of this message | ||
With most any browser nowadays, on a non-multiple select the first
option will be selected unless you specifically setup a default. With
a multiple select, it will not default to anything and will not even
post/get a variable for it at all unless the user specifically selects
something, which is why a isset($var) will work for a multiple.
On Mon, 18 Oct 2004 07:59:47 -0700, bruce <bedouglas@earthlink.net> wrote:
> john...
>
> the code (and the rfc) seems to suggest otherwise. personally, i would have
> thought, if the user doesn't select a menu, then the 'menu item' should not
> have anything with regards to the querystring...
>
> however, the spec implies something different:
> http://www.w3.org/TR/REC-html40/interact/forms.html#edef-OPTION
>
> --------------------
> 17.6.1 Pre-selected options
> Zero or more choices may be pre-selected for the user. User agents should
> determine which choices are pre-selected as follows:
>
> If no OPTION element has the selected attribute set, user agent behavior for
> choosing which option is initially selected is undefined. Note. Since
> existing implementations handle this case differently, the current
> specification differs from RFC 1866 ([RFC1866] section 8.1.3), which states:
> The initial state has the first option selected, unless a SELECTED attribute
> is present on any of the <OPTION> elements.
> Since user agent behavior differs, authors should ensure that each menu
> includes a default pre-selected OPTION.
> ---------------------
>
> if you can manage to create a sample that has 2 menu lists, each with a few
> items that has the behavior you say should occur, i'd like to take a look..
>
> i currently have code which lists 3 menus, each of which has a few items in
> the list...
>
> all the menu/lists are within a single form, with a single "inputBTN".
>
> if the user selects the menu/list for states that has a multiple select,
> then the other two lists return their 1st items, even though they haven't
> been selected....
>
>
>
> thanks
>
> -bruce
>
> -----Original Message-----
> From: John Nichel [mailto:john@kegworks.com]
> Sent: Monday, October 18, 2004 7:31 AM
> To: php-general@lists.php.net
> Subject: Re: [PHP] how to create multiple selects within php
>
> bruce wrote:
> > ok...
> >
> > it appears to be a case of user err.. the spec seems to state that if the
> > user doesn't select/specify an item, the select should return the 1st item
> > within the list... arrrgggh!! this is what's happening...
>
> Not true. If the user doesn't select anything, nothing will be
> submitted (unless you have one or more of your option tags like this
> <option value="bar" selected />)
>
> > so my question is still, how can i implement some logic that requires the
> > user to actually select an item? or, how can i detect when a user has
> > actually selected a list item??????
>
> Test to see if anything has been submitted. If your select tag is as
> such...
>
> <select name="foo[]" multiple>
>
> When you submit the form, you can check it like this...
>
> if ( isset ( $_POST['foo'] ) ) {
> //user has selected something
> do stuff
> } else {
> //user did not select anything
> do other stuff
> }
>
> --
> John C. Nichel
> ÜberGeek
> KegWorks.com
> 716.856.9675
> john@kegworks.com
>
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>