/

Opzioni di layout del form

Tre modi per disporre i campi di un form di creazione/modifica, più il selettore lato client per come quel form viene presentato a schermo.

Il predefinito semplice

Senza alcuna configurazione di layout, ogni campo modificabile viene renderizzato uno per riga, dall'alto in basso, nell'ordine naturale delle colonne della tabella (o nell'ordine di fields(), se l'hai chiamato). Non richiede alcuna configurazione ed è la scelta giusta per form brevi:

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

echo $xcrud->render();

rows() - campi affiancati

rows($row, $fields) colloca due o più campi sulla stessa riga numerata del form invece di impilarli. Ogni campo che condivide una riga divide equamente l'intera larghezza di quella riga:

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

$row è una posizione di riga, non un indice basato sull'ordine di dichiarazione - le righe vengono renderizzate in ordine numerico crescente indipendentemente da quale chiamata a rows() sia arrivata prima nel tuo PHP. Un campo appartiene al massimo a una riga; chiamare di nuovo rows() per esso lo sposta invece di duplicarlo. Le righe sono indipendenti da, e si combinano liberamente con, ogni altro layout descritto sotto.

ParametroTipoPredefinitoDescrizione
$rowintobbligatorioPosizione della riga (1 o maggiore); le righe vengono renderizzate in ordine numerico crescente
$fieldsstringobbligatorioElenco separato da virgole di nomi di campo modificabili da collocare su questa riga

rows() + aside() - una colonna laterale persistente

aside($fields) estrae campi del tutto dal flusso principale del form e li colloca in una colonna separata che resta visibile accanto ad esso, mentre tutto il resto - campi semplici, coppie di rows(), qualsiasi cosa rimanga - occupa il riquadro principale. Si combina comunemente con rows() in modo che il riquadro principale resti compatto e la colonna laterale contenga upload o campi secondari:

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

I campi laterali si impilano dall'alto in basso nell'ordine in cui l'elenco di campi del form li dispone già - esiste una sola colonna laterale, quindi non c'è un numero di riga da assegnarle. Nota: su una tabella che usa anche https://xcrudnova.xcrud.net/docs/it/nested-tables-overview, la colonna laterale resta all'interno del solo pannello della scheda "Details" del genitore, non su ogni scheda annidata.

ParametroTipoPredefinitoDescrizione
$fieldsstringobbligatorioElenco separato da virgole di nomi di campo modificabili da spostare nella colonna laterale

Il selettore della modalità di modifica (lato client)

Indipendentemente da come sono disposti i campi propri di un form, set_edit_mode($mode) controlla come il form stesso viene presentato quando una riga viene aperta per aggiunta/modifica:

$xcrud->set_edit_mode('side');
ModalitàDescrizione
modalFinestra di dialogo popup centrata sopra la griglia (predefinita)
sidePannello a scomparsa (drawer/offcanvas) dal bordo dello schermo
current"Normale" - il form sostituisce la griglia in linea, nella pagina stessa

Esistono altre due modalità ma sono solo JS - non esiste un valore set_edit_mode() per esse, solo il menu "⋯ Altre opzioni" della toolbar (vedi https://xcrudnova.xcrud.net/docs/it/grid-toolbar-and-more-options-menu) può raggiungerle a runtime:

ModalitàDescrizione
split_leftGriglia e form mostrati affiancati, form ancorato a sinistra, in una vista divisa ridimensionabile
split_rightStessa vista divisa, form ancorato a destra invece

A differenza di modal/side, le modalità divise non nascondono né coprono mai la griglia - la sua tabella dati diventa semplicemente più stretta, e resta completamente cliccabile mentre una riga viene modificata accanto ad essa.