Class Summary HTML_QuickForm_advcheckbox

Class Summary HTML_QuickForm_advcheckbox – HTML class for an advanced checkbox type field

Description

HTML class for an advanced checkbox type field. Basically this fixes a problem that HTML has had where checkboxes can only pass a single value (the value of the checkbox when checked). A value for when the checkbox is not checked cannot be passed, and furthermore the checkbox variable doesn't even exist if the checkbox was submitted unchecked.

It works by creating a hidden field with the passed-in name and creating the checkbox with no name, but with a javascript onclick which sets the value of the hidden field.

Class Trees for HTML_QuickForm_advcheckbox

HTML_QuickForm_advcheckbox Inherited Methods

Inherited from HTML_QuickForm_checkbox
Method Name Summary
Constructor HTML_QuickForm_checkbox::HTML_QuickForm_checkbox() Class constructor
HTML_QuickForm_checkbox::exportValue() Return true if the checkbox is checked, null if it is not checked (getValue() returns false)
HTML_QuickForm_checkbox::getChecked() Returns whether a checkbox is checked
HTML_QuickForm_checkbox::getFrozenHtml() Returns the value of field without HTML tags
HTML_QuickForm_checkbox::getText() Returns the checkbox text
HTML_QuickForm_checkbox::getValue() Returns the value of the form element
HTML_QuickForm_checkbox::onQuickFormEvent() Called by HTML_QuickForm whenever form event is made on this element
HTML_QuickForm_checkbox::setChecked() Sets whether a checkbox is checked
HTML_QuickForm_checkbox::setText() Sets the checkbox text
HTML_QuickForm_checkbox::setValue() Sets the value of the form element
Inherited from HTML_QuickForm_input
Method Name Summary
Constructor HTML_QuickForm_input::HTML_QuickForm_input() Class constructor
HTML_QuickForm_input::exportValue() We don't need values from button-type elements (except submit) and files
HTML_QuickForm_input::getName() Returns the element name
HTML_QuickForm_input::getValue() Returns the value of the form element
HTML_QuickForm_input::onQuickFormEvent() Called by HTML_QuickForm whenever form event is made on this element
HTML_QuickForm_input::setName() Sets the input field name
HTML_QuickForm_input::setType() Sets the element type
HTML_QuickForm_input::setValue() Sets the value of the form element
Inherited from HTML_QuickForm_element
Method Name Summary
Constructor HTML_QuickForm_element::HTML_QuickForm_element() Class constructor
HTML_QuickForm_element::accept() Accepts a renderer
HTML_QuickForm_element::apiVersion() Returns the current API version
HTML_QuickForm_element::exportValue() Returns a 'safe' element's value
HTML_QuickForm_element::freeze() Freeze the element so that only its value is returned
HTML_QuickForm_element::getFrozenHtml() Returns the value of field without HTML tags
HTML_QuickForm_element::getLabel() Returns display text for the element
HTML_QuickForm_element::getName() Returns the element name
HTML_QuickForm_element::getType() Returns element type
HTML_QuickForm_element::getValue() Returns the value of the form element
HTML_QuickForm_element::isFrozen() Returns whether or not the element is frozen
HTML_QuickForm_element::onQuickFormEvent() Called by HTML_QuickForm whenever form event is made on this element
HTML_QuickForm_element::setLabel() Sets display text for the element
HTML_QuickForm_element::setName() Sets the input field name
HTML_QuickForm_element::setPersistantFreeze() Sets wether an element value should be kept in an hidden field when the element is frozen or not
HTML_QuickForm_element::setValue() Sets the value of the form element
HTML_QuickForm_element::unfreeze() Unfreezes the form element
Custom elements (Previous) Class constructor (Next)
Last updated: Sat, 16 Feb 2019 — Download Documentation
Do you think that something on this page is wrong? Please file a bug report.
View this page in:
  • English

User Notes:

Note by: wiesemann
Frank, the statement is correct, but only in the context of the sentence before the quoted sentence. The paragraph tells you what the problem of the normal checkbox element is.
Note by: frank@bax.on.ca
"A value for when the checkbox is not checked cannot be passed, and furthermore the checkbox variable doesn't even exist if the checkbox was submitted unchecked."

This statement is incorrect. The following code...

$work[] = &HTML_QuickForm::createElement('advcheckbox', 'Guelph', null, 'Guelph', null, 'Guelph');
$work[] = &HTML_QuickForm::createElement('advcheckbox', 'Fergus', null, 'Fergus', null, 'Fergus');
$form->addGroup($work, 'Workplace', 'In which area do you wish to work<br>(select all that apply)?', '<br>');

Then check 'Guelph', but not Fergus and we get:

["Workplace"]=> array(2) { ["Guelph"]=> string(6) "Guelph" ["Fergus"]=> string(0) "" }