Aller au contenu principal
Menu
Offcanvas

Form API snippet

La Form API Drupal permet de générer des formulaires sous forme de tableau PHP. Vous n’avez pas à coder vos éléments directement en HTML. Cette API très puissante permet de réaliser des formulaires complexes et sur mesure.

Désactiver un champ (ajouter l'attribut disabled)

TRUE : l'élément est affiché mais n'accepte pas les entrées de l'utilisateur.

$form['lorem'] = array(
    '#type' => 'textfield',
    '#disabled' => TRUE,
 );

 

Rendre un champ obligatoire

TRUE : Indique si une entrée est requise ou non sur l'élément. 

$form['lorem'] = array(
    '#type' => 'textfield',
    '#required' => TRUE,
);

 

Ajouter une valeur par défaut de l'élément. 

$form['lorem'] = array(
    '#type' => 'textfield',
    '#value' => 'lorem ipsum,
 );

 

Ajouter du js

$form['#attached']['library'][] = 'my_module/form_test';

 

Ajouter une class

$form['lorem'] = array(
    '#type' => 'textfield',
    '#attributes' => array(
        'class' => array('my_class my_class_2'),
    ),
 );

 

Ajouter un placeholder

$form['lorem'] = array(
    '#type' => 'textfield',
    '#attributes' => array(
           'placeholder' => 'lorem ipsum'
     ),
 )

 

HTML5

'#type' => 'tel'
'#type' => 'email'
'#type' => 'number'
'#type' => 'date'
'#type' => 'url'
'#type' => 'search'
'#type' => 'range'

 

Ajouter un wrapper 

$form['lorem'] = array(
    '#type' => 'textfield',
    '#wrapper_attributes' => ['class' => ['wrapper-input']],
 );

 

Redirection après validation du formulaire. 

Dans votre méthode "submitForm" écrivez ci-dessous le code.
"machine_name" est le nom  mentionné dans le fichier de routage.

$form_state->setRedirect('machine_name');
return;

Exemple, redirection vers la page d'accueil

$form_state->setRedirect('<front>');

 

Sélectionner tous les input type checkbox

$form['lorem'] = [
    '#type' => 'checkboxes',
    '#options' => $options,
     // coche toutes les checkbox
     '#attributes' => ['checked' => 'checked'],
];

 

Cocher par défaut un champ checkbox 

$form['lorem'] = [
    '#type' => 'checkbox',
    '#default_value' => '1',
 ];

 

Valeur par défaut d'un champ type select

$form['lorem'] = [
    '#type' => 'select',
    '#options' => [
        '1' => 'Hello',
        '2' => 'World!'
            ],
    '#default_value' => '2',
];

 

Limiter la validation sur le bouton retour dans un formulaire Ajax en plusieurs étapes

On utilise '#limit_validation_errors' => []

$form['wrapper-step']['actions']['back'] = [
      '#type' => 'submit',
      '#name' => 'previous',
      '#value' => 'Retour',
      '#submit' => ['::decrementStep'],
      '#ajax' => [
        'callback' => [$this, 'ajaxFormCallback'],
        'wrapper' => 'rachat-container',
      ],
      '#attributes' =>
        ['class' => ['btn btn-primary btn-prev']],
      '#limit_validation_errors' => [],
    ];

Ajouter un wrapper autours d’un élement

On ouvre une div avec la class col-2 avant l’élément email et on ferme cet div après.

$form['email']['#prefix'] = '<div class="col-2 ">';
$form['email']['#suffix'] = '</div>';

 

Ajouter un commentaire

Articles similaires

Comment supprimer les changements locaux avec git que l'on n'a pas commit ?

LIRE LA SUITE