/

Wizard di form a più passaggi

Trasforma un lungo form di creazione/modifica in un wizard guidato, passo dopo passo, mantenendo esattamente lo stesso salvataggio unico.

form_wizard() - dichiara un passo per chiamata

->form_wizard($fields, $label, $options = []) dichiara un passo; chiamalo una volta per ogni passo, nell'ordine in cui i passi devono apparire. Un wizard è puramente uno strato di presentazione lato client sopra lo stesso salvataggio unico usato da ogni altro form - il pulsante Salva compare solo nell'ultimo passo. È mutuamente esclusivo con ->fields()/->fields_arrange() come layout di primo livello del form.

$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');
ParametroTipoPredefinitoDescrizione
$fieldsstring|array-Stringa separata da virgole o array di nomi di campo per questo passo; un campo può comparire in un solo passo
$labelstring-Nome del passo mostrato nell'indicatore di avanzamento
$optionsarray[]desc, next, previous - vedi sotto
Chiave opzioneTipoDescrizione
descstringUna breve frase mostrata sotto il nome del passo
nextstringEtichetta del pulsante Avanti solo per questo passo, che sovrascrive il globale next_label
previousstringEtichetta del pulsante Indietro solo per questo passo, che sovrascrive il globale previous_label

form_wizard_settings() - aspetto globale

->form_wizard_settings($settings) configura l'aspetto e il comportamento generale del wizard. Chiamalo una sola volta, ovunque dopo le dichiarazioni form_wizard(). Qualsiasi chiave che ometti mantiene il proprio predefinito.

$xcrud->form_wizard_settings([
    'progress' => 'step',
    'next_label' => 'Continue',
    'previous_label' => 'Back',
    'done_label' => 'Submit',
    'validate_step' => true,
]);
ImpostazioneTipoPredefinitoDescrizione
progressstring'step'Vedi i 4 stili di avanzamento sotto
next_labelstring'Next'Testo del pulsante avanti
previous_labelstring'Back'Testo del pulsante indietro
done_labelstringIl testo Salva proprio della paginaTesto del pulsante sull'azione di invio dell'ultimo passo
show_step_numbersbooltrueMostra la pillola "Passo N di M" / numerica
show_step_descbooltrueMostra il desc di ogni passo sotto la sua etichetta
validate_stepbooltrueEsegue la validazione HTML5 nativa prima di avanzare un passo, bloccando lo spostamento se non valido
Stile di avanzamentoAspetto
stepIndicatori numerati "Passo N di M" con etichette
pillPulsanti nav-pill con un segno di spunta sui passi visitati
barUn'unica barra di avanzamento orizzontale, riempita fino al passo corrente
noneNessun indicatore di avanzamento, solo Prec/Succ

Un esempio completo a 3 passi

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