/

Options de mise en page du formulaire

Trois façons d'organiser les champs d'un formulaire de création/édition, plus le sélecteur côté client déterminant comment ce formulaire s'affiche à l'écran.

La disposition par défaut

Sans aucune configuration de mise en page, chaque champ éditable s'affiche un par ligne, de haut en bas, dans l'ordre naturel des colonnes de la table (ou l'ordre de fields(), si vous l'avez appelée). Cela ne nécessite aucun réglage et constitue le bon choix pour les formulaires courts :

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

echo $xcrud->render();

rows() - des champs côte à côte

rows($row, $fields) place deux champs ou plus sur la même ligne numérotée du formulaire au lieu de les empiler. Chaque champ partageant une ligne se divise équitablement toute la largeur de cette ligne :

$xcrud->rows(1, 'firstName,lastName');
$xcrud->rows(2, 'city,state,zip');

$row est une position de ligne, pas un index d'ordre de déclaration - les lignes s'affichent dans l'ordre numérique croissant, quel que soit l'appel à rows() venu en premier dans votre PHP. Un champ appartient à au plus une ligne ; rappeler rows() pour lui le déplace plutôt que de le dupliquer. Les lignes sont indépendantes de - et se combinent librement avec - toute autre disposition ci-dessous.

ParamètreTypeDéfautDescription
$rowintrequisPosition de la ligne (1 ou plus) ; les lignes s'affichent dans l'ordre numérique croissant
$fieldsstringrequisListe de noms de champs éditables séparés par des virgules à placer sur cette ligne

rows() + aside() - une colonne latérale persistante

aside($fields) extrait entièrement des champs du flux principal du formulaire pour les placer dans une colonne séparée qui reste visible à ses côtés, tandis que tout le reste - champs simples, paires rows(), ce qu'il reste - occupe le panneau principal. Elle est fréquemment combinée avec rows() pour que le panneau principal reste compact et que la colonne latérale accueille les téléversements ou champs secondaires :

$xcrud->rows(1, 'firstName,lastName');
$xcrud->rows(2, 'city,state,zip');
$xcrud->aside('photo,attach');

Les champs en colonne latérale s'empilent de haut en bas dans l'ordre où la propre liste de champs du formulaire les place déjà - il n'y a qu'une seule colonne latérale, il n'y a donc pas de numéro de ligne à lui donner. Remarque : sur une table qui utilise aussi https://xcrudnova.xcrud.net/docs/fr/nested-tables-overview, la colonne latérale reste à l'intérieur du seul panneau d'onglet "Details" du parent, pas à travers chaque onglet imbriqué.

ParamètreTypeDéfautDescription
$fieldsstringrequisListe de noms de champs éditables séparés par des virgules à extraire vers la colonne latérale

Le sélecteur de mode d'édition (côté client)

Indépendamment de la façon dont les propres champs d'un formulaire sont organisés, set_edit_mode($mode) contrôle comment le formulaire lui-même est présenté lorsqu'une ligne est ouverte pour ajout/édition :

$xcrud->set_edit_mode('side');
ModeDescription
modalBoîte de dialogue popup centrée par-dessus la grille (le défaut)
sidePanneau tiroir/offcanvas glissant depuis le bord de l'écran
current"Normal" - le formulaire remplace la grille en ligne, dans la page elle-même

Deux modes supplémentaires existent mais sont uniquement accessibles en JS - il n'existe pas de valeur set_edit_mode() pour eux, seul le menu "⋯ Plus d'options" de la barre d'outils (voir https://xcrudnova.xcrud.net/docs/fr/grid-toolbar-and-more-options-menu) peut les atteindre au moment de l'exécution :

ModeDescription
split_leftGrille et formulaire affichés côte à côte, formulaire ancré à gauche, dans une vue divisée redimensionnable
split_rightMême vue divisée, formulaire ancré à droite à la place

Contrairement à modal/side, les modes divisés ne masquent ni ne recouvrent jamais la grille - son tableau de données devient simplement plus étroit, et reste entièrement cliquable pendant qu'une ligne est en cours d'édition à ses côtés.