/

Mehrstufige Formular-Wizards

Verwandeln Sie ein langes Erstellen-/Bearbeiten-Formular in einen geführten, schrittweisen Wizard über exakt demselben einzelnen Speichervorgang.

form_wizard() - einen Schritt pro Aufruf deklarieren

->form_wizard($fields, $label, $options = []) deklariert einen Schritt; rufen Sie sie einmal pro Schritt auf, in der Reihenfolge, in der die Schritte erscheinen sollen. Ein Wizard ist rein eine clientseitige Präsentationsebene über demselben einzelnen Speichervorgang, den auch jedes andere Formular verwendet - der Speichern-Button erscheint erst im letzten Schritt. Er schließt sich gegenseitig mit ->fields()/->fields_arrange() als oberstem Formular-Layout aus.

$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');
ParameterTypStandardBeschreibung
$fieldsstring|array-Kommagetrennter String oder Array von Feldnamen für diesen Schritt; ein Feld darf in genau einem Schritt vorkommen
$labelstring-Schrittname, angezeigt in der Fortschrittsanzeige
$optionsarray[]desc, next, previous - siehe unten
Options-SchlüsselTypBeschreibung
descstringEin kurzer Satz, angezeigt unter dem Schrittnamen
nextstringWeiter-Button-Beschriftung nur für diesen Schritt, überschreibt das globale next_label
previousstringZurück-Button-Beschriftung nur für diesen Schritt, überschreibt das globale previous_label

form_wizard_settings() - globales Erscheinungsbild

->form_wizard_settings($settings) konfiguriert das gesamte Erscheinungsbild und Verhalten des Wizards. Rufen Sie sie einmal auf, irgendwo nach den form_wizard()-Deklarationen. Jeder ausgelassene Schlüssel behält seinen Standardwert.

$xcrud->form_wizard_settings([
    'progress' => 'step',
    'next_label' => 'Continue',
    'previous_label' => 'Back',
    'done_label' => 'Submit',
    'validate_step' => true,
]);
EinstellungTypStandardBeschreibung
progressstring'step'Siehe die 4 Fortschrittsstile unten
next_labelstring'Next'Text des Weiter-Buttons
previous_labelstring'Back'Text des Zurück-Buttons
done_labelstringDer eigene Speichern-Text der SeiteButton-Text bei der Submit-Aktion des letzten Schritts
show_step_numbersbooltrueZeigt die "Schritt N von M" / numerische Pille
show_step_descbooltrueZeigt das jeweilige desc jedes Schritts unter dessen Beschriftung
validate_stepbooltrueFührt die native HTML5-Validierung aus, bevor zum nächsten Schritt gewechselt wird, und blockiert den Wechsel bei Ungültigkeit
FortschrittsstilErscheinungsbild
stepNummerierte "Schritt N von M"-Anzeigen mit Beschriftungen
pillNav-Pill-Buttons mit Häkchen auf besuchten Schritten
barEin horizontaler Fortschrittsbalken, gefüllt bis zum aktuellen Schritt
noneKeine Fortschrittsanzeige, nur Zurück/Weiter

Ein vollständiges 3-Schritte-Beispiel

$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();