RE: [PHP] Multiple Select Stuff
| From: | John Coggeshall | Date: | Sat, 05 Aug 2000 05:44:30 +0000 |
| Subject: | RE: [PHP] Multiple Select Stuff | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-10300@lists.php.net to get a copy of this message | ||
You've got the right idea, and yes the select box is multiple-select. I was
just hoping there was a way to format the array so that, at LEAST, it was
the KEY that was set in the array (and not the value) so that....
instead of (for a multiple-select box):
array(0=>"abc",
1=>"def");
It would be:
array("def"=>1,
"abc"=>0);
That way, I could save myself the trouble of trying to loop through the
array looking for a match, instead I could just do a
if(isset($array['myselect']['def']))
Do you see what I mean?
John
> -----Original Message-----
> From: Joe Conway [mailto:jconway2@home.com]
> Sent: Sunday, August 06, 2000 1:17 AM
> To: John Coggeshall
> Cc: php general
> Subject: Re: [PHP] Multiple Select Stuff
>
>
> >> Okay, Say you having something like...
> >>
> >> <SELECT NAME="myselect[]" MULTIPLE>
> >> <OPTION VALUE="abc">ABC</OPTION>
> >> <OPTION VALUE="def">DEF</OPTION>
> >> <OPTION VALUE="ghi">GHI</OPTION>
> >> </SELECT>
> >>
> >> My problem is I'd like PHP to select certain options in the
> list that the
> >> user selected perviously. Does that make sense?
> >>
> >> Any suggestions?
>
>
> I'm not sure if I understand what you're trying to accomplish,
> but I'll take a stab at it. Your last statement makes it sound
> like you want the previously selected value in a list of values
> to be pre-selected. In that case, here's an example. It assumes
> that the last selected value of $prod_sn is already known.
>
> print("<TD width=\"25%\"><SELECT NAME=\"prod_sn\"
> style=\"width:95%\">\n");
> $sql = "select distinct product_sn from c_hdr";
> $rs = pg_exec($conn,$sql);
> $numrecs = pg_numrows($rs);
> for ($row = 0; $row < $numrecs; $row++) {
> if (pg_result($rs,$row,0) != $prod_sn) {
> print("<OPTION VALUE=\"" . pg_result($rs,$row,0) .
> "\">");
> } else {
> print("<OPTION VALUE=\"" . pg_result($rs,$row,0) . "\"
> SELECTED>");
> }
> print(pg_result($rs,$row,0) . "</OPTION>\n");
> };
> if (pg_numrows($rs) == 0) {
> print("<OPTION>No matches found</OPTION>\n");
> }
> pg_freeresult($rs);
> print("</SELECT></TD>\n");
>
>
> I think if you add MULTIPLE to the <SELECT> tag (i.e. <SELECT
> NAME="prod_sn" style="width:95%" MULTIPLE>) and if $prod_sn were
> an array of previously selected values, you could modify the
> above to acheive your desired result (i.e. loop through all of
> the $prod_sn[] values when testing for a match).
>
> Hope this helps,
>
> Joe
>
>