/

Assistants de formulaire multi-étapes

Transformez un long formulaire de création/édition en un assistant guidé étape par étape, au-dessus du même unique enregistrement.

form_wizard() - déclarer une étape par appel

->form_wizard($fields, $label, $options = []) déclare une étape ; appelez-la une fois par étape, dans l'ordre où les étapes doivent apparaître. Un assistant n'est qu'une couche de présentation côté client au-dessus du même unique enregistrement que tout autre formulaire utilise - le bouton Enregistrer n'apparaît que sur la dernière étape. Il est mutuellement exclusif avec ->fields()/->fields_arrange() comme disposition de formulaire de premier niveau.

$xcrud->form_wizard('firstName,lastName,email', 'Contact Info');
$xcrud->form_wizard('addressLine1,city,postalCode', 'Address', ['desc' => 'Where should we ship?']);
$xcrud->form_wizard('cardNumber,expiry', 'Payment');
ParamètreTypeDéfautDescription
$fieldsstring|array-Chaîne séparée par des virgules ou tableau de noms de champs pour cette étape ; un champ ne peut apparaître que dans une seule étape
$labelstring-Nom de l'étape affiché dans l'indicateur de progression
$optionsarray[]desc, next, previous - voir ci-dessous
Clé d'optionTypeDescription
descstringUne courte phrase affichée sous le nom de l'étape
nextstringLibellé du bouton suivant propre à cette étape, remplaçant le next_label global
previousstringLibellé du bouton précédent propre à cette étape, remplaçant le previous_label global

form_wizard_settings() - apparence globale

->form_wizard_settings($settings) configure l'apparence et le comportement d'ensemble de l'assistant. Appelez-la une fois, n'importe où après les déclarations form_wizard(). Toute clé omise conserve sa valeur par défaut.

$xcrud->form_wizard_settings([
    'progress' => 'step',
    'next_label' => 'Continue',
    'previous_label' => 'Back',
    'done_label' => 'Submit',
    'validate_step' => true,
]);
RéglageTypeDéfautDescription
progressstring'step'Voir les 4 styles de progression ci-dessous
next_labelstring'Next'Texte du bouton suivant
previous_labelstring'Back'Texte du bouton précédent
done_labelstringLe texte d'enregistrement propre à la pageTexte du bouton sur l'action de soumission de la dernière étape
show_step_numbersbooltrueAfficher la pastille "Étape N sur M" / numérique
show_step_descbooltrueAfficher le desc de chaque étape sous son libellé
validate_stepbooltrueExécuter la validation HTML5 native avant de passer à l'étape suivante, bloquant le passage si invalide
Style de progressionApparence
stepIndicateurs numérotés "Étape N sur M" avec libellés
pillBoutons de type nav-pill avec une coche sur les étapes visitées
barUne seule barre de progression horizontale, remplie jusqu'à l'étape actuelle
noneAucun indicateur de progression, juste Précédent/Suivant

Un exemple complet en 3 étapes

$xcrud = Xcrud::get_instance();
$xcrud->table('customers');
$xcrud->route('customers');

$xcrud->form_wizard('customerName,contactFirstName,contactLastName', 'Company');
$xcrud->form_wizard('addressLine1,city,country,postalCode', 'Address');
$xcrud->form_wizard('phone,creditLimit', 'Account Terms');

$xcrud->form_wizard_settings([
    'progress' => 'pill',
    'done_label' => 'Create Customer',
]);

$xcrud->render();