RE: [PHP] Multiple Select And Javascript Issue - AMMENDED TO ARRAY QUESTION
| From: | Grant Walters | Date: | Fri, 25 Aug 2000 21:31:31 +0000 |
| Subject: | RE: [PHP] Multiple Select And Javascript Issue - AMMENDED TO ARRAY QUESTION | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-13742@lists.php.net to get a copy of this message | ||
> I'd do it by assigning them to an array first an then attaching
> the array to
> the form.
> eg. "$list[0] = 'testing'; $list[1]='testing again';" etc...
> then do "document.formName.['items[]'].value = $list;".
I tried this in the Javascript code.
sel = document.Regform['Item']
var Item_List = new Array()
document.Regform['Item_List[]'].value = ''
for( i = 0 ; i<sel.length ; i++ )
{
Item_List[i] = sel.options[i].value
}
document.Regform['Item_List[]'].value = Item_List
The value determined by PHP when it is received is still an array containing
1 element.
The individual items are delimited with a comma ",".
>
> -mic
>
> ----- Original Message -----
> From: "Grant Walters" <Grant.Walters@walters.co.nz>
> To: <php-general@lists.php.net>
> Sent: Friday, August 25, 2000 4:07 PM
> Subject: RE: [PHP] Multiple Select And Javascript Issue -
> AMMENDED TO ARRAY
> QUESTION
>
>
> > > > >> > Scenario as follows:
> > > > >> >
> > > > >> > SELECT with MULTIPLE options is being built by Javascript code
> > > > >> that won't
> > > > >> > accept a variable name like "items[]" so it fills a
> > > > >> > field
> > > > >> called "items".
> > > > >> >
> > > > >> > This is'nt too bad as I can work around it with a hidden
> > > > >> > field.
> > > > >> >
> > > > >> > The problem is that PHP doesn't populate
> HTTP_POST_VARS with the
> > > entries
> > > > >> > from "items" unless they are acutally selected.
> > > > >> >
> > > > >> > Can I get PHP to return all values from the SELECT
> > > MULTIPLE variable?
> > > > >> >
> > > > >> Maybe this is relevant?
> > > > >> http://au.php.net:81/FAQ.php/#7.14
> > > > >>
> > > > >
> > > > > The bit about the [] is. I managed to suss that one myself.
> > > My problem
> > > is
> > > > > still that PHP seems to only propagate the values if all of the
> values
> > > are
> > > > > selected. Or is it the Browser? not passing them.
> > > > >
> > > > > I need to obtain all the values in the select list
> whether they are
> > > selected
> > > > > or not.
> > > > >
> > > > > Regards
> > > >
> > > > It's not so much that PHP propagates them as they are only sent if
> set.
> > > > The data might well come from a form that is pure html and
> not parsed
> by
> > > > php. If you need the values of all the options, you may need to pass
> > > > them another way - hidden field, perhaps or could you keep them in a
> > > > database and do a lookup as required?
> > > >
> > >
> > > I don't think PHP has anything to do with the form values being sent,
> it's
> > > just the browser that doesn't send them. I'd say the option
> > > mentioned below
> > > of using a hidden field and an array to pass the values on to PHP.
> > >
> >
> > I have hit a snag anyway as I tried the following:
> >
> > I created a second SELECT group that is updated with the selected option
> set
> > to true. Works beuatifully except you can't hide a SELECT input field.
> > So...
> >
> > I now have a INPUT HIDDEN field called "items[]" which I populate with
> all
> > of the options from the SELECT list (more later).
> >
> > This is good except for one thing. While PHP decides that the
> variable is
> > an array because of the [], it contains only one element with all of the
> > options, so...
> >
> > When I build the string for the field, is there a terminator I
> can use to
> > trick PHP into recognising it as the end of an array element?
> >
> > Such as document.formName.['items[]'].value = "0\nfirst item\n1\nsecond
> > item\n3\nthird item\n"
> >
> > In the mean time I'll just modify the code to "explode" the values.
Regards
GRANT WALTERS
Walters & Associates, P O Box 13-043, Johnsonville, Wellington, New Zealand
Phone: +64 4 4765175 CellPhone: 025 488265