I wouldn't use the map, though it's popped up a few times recently. What if someone passed parameters such as this?
C1 = 1
C2 = 1
C2 = 0
C2 = 1
C3 = 0
You'll end up with an array of (1, 1, 0, 1, 0) when you're only expecting three checkboxes.
| [reply] [d/l] [select] |
I suppose the checkboxes are created dynamically since it is a mail app.
So they will be named uniquely and this shouldn't be a problem.
| [reply] |
| [reply] |
Thank you for your help. I tried the for loop but it doesn't initialize the variables $C1, $C2, $C3 even though the $msgcount is a value of 3. Just from looking at it, @C is never populated with any values so I would suppose @C would have to be set to the variables $C1, $C2 ... which I don't think will even be syntatically correct (i.e. @C = ($C1, $C2, ...)).
The map function does work when the checkbox is set to ON (when checked) but if the checkbox is not set, there is no value returned and the map function will not put anything into the array element for that checkbox. So if I were to delete message 1 and message 3, there is no way to correspond the array elements with a particular message since the array looks like this:
$C[0] = "ON";
$C[1] = "ON";
When in reality, it should look like:
$C[0] = "ON";
$C[1] = "";
$C[2] = "ON";
I am not aware of an option with the checkbox to have two settings. It's either ON or not ON (i.e. no value).
Thanks again.
David K.
| [reply] [d/l] [select] |
Try the following map (untested):
my @C = map { param("C$_") || 'OFF' } 0..$msgcount - 1;
It should give something like:
$C[0] = "ON";
$C[1] = "OFF";
$C[2] = "ON";
| [reply] [d/l] [select] |
Wow! that works perfectly! Thank you very much.
Best Regards,
David K.
| [reply] |