public function AjaxFormsTestSimpleForm::buildForm in Zircon Profile 8.0
Same name and namespace in other branches
- 8 core/modules/system/tests/modules/ajax_forms_test/src/Form/AjaxFormsTestSimpleForm.php \Drupal\ajax_forms_test\Form\AjaxFormsTestSimpleForm::buildForm()
Form constructor.
Parameters
array $form: An associative array containing the structure of the form.
\Drupal\Core\Form\FormStateInterface $form_state: The current state of the form.
Return value
array The form structure.
Overrides FormInterface::buildForm
File
- core/
modules/ system/ tests/ modules/ ajax_forms_test/ src/ Form/ AjaxFormsTestSimpleForm.php, line 29 - Contains \Drupal\ajax_forms_test\Form\AjaxFormsTestSimpleForm.
Class
- AjaxFormsTestSimpleForm
- Form builder: Builds a form that triggers a simple AJAX callback.
Namespace
Drupal\ajax_forms_test\FormCode
public function buildForm(array $form, FormStateInterface $form_state) {
$object = new Callbacks();
$form = array();
$form['select'] = array(
'#title' => $this
->t('Color'),
'#type' => 'select',
'#options' => array(
'red' => 'red',
'green' => 'green',
'blue' => 'blue',
),
'#ajax' => array(
'callback' => array(
$object,
'selectCallback',
),
),
'#suffix' => '<div id="ajax_selected_color">No color yet selected</div>',
);
$form['checkbox'] = array(
'#type' => 'checkbox',
'#title' => $this
->t('Test checkbox'),
'#ajax' => array(
'callback' => array(
$object,
'checkboxCallback',
),
),
'#suffix' => '<div id="ajax_checkbox_value">No action yet</div>',
);
$form['submit'] = array(
'#type' => 'submit',
'#value' => $this
->t('submit'),
);
// This is for testing invalid callbacks that should return a 500 error in
// \Drupal\Core\Form\FormAjaxResponseBuilderInterface::buildResponse().
$invalid_callbacks = array(
'null' => NULL,
'empty' => '',
'nonexistent' => 'some_function_that_does_not_exist',
);
foreach ($invalid_callbacks as $key => $value) {
$form['select_' . $key . '_callback'] = array(
'#type' => 'select',
'#title' => $this
->t('Test %key callbacks', array(
'%key' => $key,
)),
'#options' => array(
'red' => 'red',
),
'#ajax' => array(
'callback' => $value,
),
);
}
return $form;
}