"Plutarck" <[EMAIL PROTECTED]> wrote:
> Your problem has little to do with the things mentioned.
>
> First of all, you are refering to a variable variable incorrectly.

Actually, he's not.

>You must
> use brackets, like this:
>
> ${$id}

The braces aren't required in this case.  Of the four examples below, only
the 3rd won't return the expected results - because the first $ is
interpreted as a literal $.  Paste the code below into a webpage and see for
yourself.

<?php
$field = 'name';
$name = 'Steve';

echo '<br>' . $$field;
echo '<br>' . ${$field};
echo '<br>' . "My name is $$field.";
echo '<br>' . "My name is ${$field}.";
?>

I have a few possible explanations for the problem of the original poster
(see below).

> if (${$id} == "on")
> {
>     echo 'on';
> } else
> {
>     echo 'off';
> }

1. If $id is a number I believe PHP will choke b/c I don't believe numbers
can be used as variable names.

2. Assume $id = 'age_bracket'.  The control structure checks to see if
$age_bracket == "on".  To set $id in the first place for your multiple
checkbox values, you'd have to loop through the values sent from the form.
Jack (original poster), did you do that?  If your form's method = post then
you would loop through $HTTP_POST_VARS and if it was get $HTTP_GET_VARS (and
then only loop through the checkbox variables).  Or you could predefine the
checkbox variables using:

$checkbox_fields = array( 'age_bracket', 'weight', 'gender', 'occupation' );

And then loop through as follows:

while( list( , $val ) = each( $checkbox_fields ) )
{
// may have to set as $$GLOBALS[$val] if within a function or declare $val
as global first.
    if ( $$val == 'on' )
    {
        echo 'on';
    }
    else
    {
        echo 'off';
     }
}

--
Steve Werby
President, Befriend Internet Services LLC
http://www.befriend.com/


-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to