Solved it -- I *can* do what I wanted without variable variables... it was
human error.
Justin French
on 22/08/02 4:09 PM, Justin French ([EMAIL PROTECTED]) wrote:
> Hi all,
>
> Having trouble with the logic behind this.
>
> I have a dynamic SKU, and a dynamic size_range array.
>
> Examples:
>
> $sku = '44044';
> $size_range = array('S', 'M', 'L');
>
>
> Which I use to build a pull down select box:
>
> <SELECT name="myselect">
> <?
> foreach($sizes as $k => $v)
> {
> echo "<OPTION value=\"$v\">$v</OPTION>";
> }
> ?>
> </SELECT>
>
>
> Note, the select's name is just a string now, not an array. Sinxe there are
> many SKU's on the page, What I'd like to do is dynamically generate this
> name, so that each SKU is part of an array. Eg:
>
> $selected_size['44044'] = 'M';
> $selected_size['44045'] = 'S';
> $selected_size['44046'] = 'L';
> etc etc
>
> This will make processing the data HEAPS easier.
>
>
> So I need to dynamically generate the SELECT's name:
>
> <SELECT name="selected_size['<?=$sku?>']>
>
> Easy.
>
>
> BUT, since this form may be spat back out to the user if fields were left
> blank, etc etc, I like to do something like:
>
> <SELECT name="myselect">
> <?
> foreach($sizes as $k => $v)
> {
> $myselect = $_POST['myselect'];
> if($myselect == $v) { $sel = " selected"; } else { $sel = ""; }
> echo "<OPTION value=\"{$v}\"{$sel}>{$v}</OPTION>";
> }
> ?>
> </SELECT>
>
> Which ensures that any values they did select will still be selected when
> they get given the form again to make changes.
>
> Trouble is, with a dynamically assigned SELECT name, I have no idea how to
> test for an existing value.
>
> I thought it'd be something like:
>
> <SELECT name="myselect['<?=$sku?>']">
> <?
> foreach($sizes as $k => $v)
> {
> $myselect["$sku"] = $_POST['myselect']["$sku"];
> if($myselect["$sku"] == $v) { $sel = " selected"; } else { $sel = ""; }
> echo "<OPTION value=\"{$v}\"{$sel}>{$v}</OPTION>";
> }
> ?>
> </SELECT>
>
> But this isn't working. My guess is that I need variable variables, or some
> other way of referencing the select's name.
>
> Any ideas welcome.
>
>
>
> Justin French
>
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php