input checkbox group from database sql dynamic


This element is checkbox group that takes values and labels from a database query (like selectDynamic or inputRadioDynamic does), and returns only those values that were checked.

Using a multiple select might be cumbersome for users: in such cases inputCheckboxDynamic is a great built-in alternative.

This element also features a very useful validation to minimum/maximum number of checkboxes required!

You can specify values for the unchecked and checked checkboxes. These values will be returned by $clonefish->getElementValues().

Note: according to the HTML specification, the unchecked checkbox values are missing when forms are submitted. Clonefish fixes this behaviour by design, so a checkbox value received from Clonefish is immediately insertable into a database for example.

Note: as this element contains multiple form inputs, there's no htmlid setting for this element.


= Array(
'id' => Array(
'type'           => 'inputCheckboxDynamic',
'displayname'    => 'This is a dynamic checkbox group',

// first field: checkbox value, 
    // second field: checkbox label
'sql'            => 'SELECT id, name FROM categories'

// an array to create additional checkboxes, with id => value pairs
'values'         => Array(), 
// eg. Array( 1 => 'Asia', 2 => 'Africa', 3 => 'Australia', ... )

'onvalue'        => 1// value returned for a checked checkbox
'offvalue'       => 0// value returned for an unchecked checkbox

    // an array containing the ids (the first field from the SQL query).
    // Values with these ids will be checked, so you can pre-check
    // several/all checkboxes.
'value'          => Array(), // eg. Array( 1, 3, 5 )

    // an SQL query that returns ids to pre-check checkboxes
    // similarly to the 'values' setting
'valuesql'       => "SELECT categoryid FROM bookcategories WHERE id='12'",

// layout: the container for the checkbox group
'layout'         => '%s',

// itemlayout: the layout of a checkbox row
'itemlayout'     => "%checkbox% %label%<br />\n",

// divider settings: to create multiple columns
'divide'         => 5// default: null
'divider'        => "</td><td>"// default: null, see example!

'html'           => 'class="inputfieldstyle"',
'help'           => 'validation failed for this element',
'rowlayout'      => '...%element% %prefix% %postfix% etc...',
'prefix'         => 'string to display before element',
'postfix'        => 'string to display after element',
'readonly'       => 0,
'display'        => 0


Live examples:

Validators to use together with this element:

form validation for developers!

clonefish is a proven, mature form generator class that helps PHP developers to create, validate and process secure, flexible and easy-to-maintain forms
learn more
Bookmark and Share