/

Asistentes de formulario en varios pasos

Convierte un formulario de creación/edición largo en un asistente guiado paso a paso sobre exactamente el mismo guardado único.

form_wizard() - declara un paso por llamada

->form_wizard($fields, $label, $options = []) declara un paso; llámalo una vez por paso, en el orden en que deben aparecer. Un asistente es puramente una capa de presentación del lado del cliente sobre el mismo guardado único que usan todos los demás formularios - el botón Guardar solo aparece en el último paso. Es mutuamente excluyente con ->fields()/->fields_arrange() como disposición de formulario de nivel superior.

$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');
ParámetroTipoPor defectoDescripción
$fieldsstring|array-Cadena separada por comas o array de nombres de campo para este paso; un campo puede aparecer en exactamente un paso
$labelstring-Nombre del paso mostrado en el indicador de progreso
$optionsarray[]desc, next, previous - ver más abajo
Clave de opciónTipoDescripción
descstringUna frase corta mostrada debajo del nombre del paso
nextstringEtiqueta del botón siguiente solo para este paso, anulando el next_label global
previousstringEtiqueta del botón anterior solo para este paso, anulando el previous_label global

form_wizard_settings() - apariencia global

->form_wizard_settings($settings) configura el aspecto y comportamiento general del asistente. Llámalo una vez, en cualquier punto tras las declaraciones de form_wizard(). Cualquier clave que omitas conserva su valor por defecto.

$xcrud->form_wizard_settings([
    'progress' => 'step',
    'next_label' => 'Continue',
    'previous_label' => 'Back',
    'done_label' => 'Submit',
    'validate_step' => true,
]);
AjusteTipoPor defectoDescripción
progressstring'step'Consulta los 4 estilos de progreso más abajo
next_labelstring'Next'Texto del botón de avance
previous_labelstring'Back'Texto del botón de retroceso
done_labelstringEl texto de Guardar propio de la páginaTexto del botón en la acción de envío del último paso
show_step_numbersbooltrueMuestra la píldora "Step N of M" / numérica
show_step_descbooltrueMuestra el desc de cada paso debajo de su etiqueta
validate_stepbooltrueEjecuta la validación nativa de HTML5 antes de avanzar de paso, bloqueando el avance si no es válido
Estilo de progresoApariencia
stepIndicadores numerados "Step N of M" con etiquetas
pillBotones tipo píldora de navegación con una marca de verificación en los pasos visitados
barUna barra de progreso horizontal, rellenada hasta el paso actual
noneSin indicador de progreso, solo Anterior/Siguiente

Un ejemplo completo de 3 pasos

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