|
Posted by David Haynes on 07/14/06 13:32
jeffsnox@gmail.com wrote:
> Hi,
>
> I have multiple checkboxes on the same form as follows:
>
> <input type='checkbox' name='cbtype[]' value='1'>
> <input type='checkbox' name='cbtype[]' value='2'>
> <input type='checkbox' name='cbtype[]' value='3'>
>
> I'm wanting to re-display the same checkboxes, but if the user
> previously checked one of them then I want it automatically checked on
> the subsequent display. At the moment I'm doing this:
>
> $checked = '';
> if (in_array('1',$HTTP_POST_VARS[cbtype])) { $checked = ' checked'; }
> <input type='checkbox' name='cbtype[]' value='1' $checked>
>
> This works perfectly unless the user hasn't selected any of the
> checkboxes in which case I get the following error thrown at me:
>
> Warning: in_array(): Wrong datatype for second argument in...
>
> Obviously PHP isn't creating an array for the checkbox selection data
> unless it has to, and so "in_array" is throwing a wobbly.
>
> Presumably there's a better way to do this?
>
> TIA
>
I usually unroll the checkbox as follows:
$boxes = array(1, 2, 3);
foreach( $boxes as $box ) {
$checked = isset($_POST['cbtype'][$box]) ? 'checked' : '';
printf("<input type=\"checkbox\" name=\"cbtype[]\" value=\"%d\" %s>\n",
$box, $checked);
}
-david-
[Back to original message]
|