/

Formular-Layout-Optionen

Drei Möglichkeiten, die Felder eines Erstellen-/Bearbeiten-Formulars anzuordnen, plus der clientseitige Umschalter dafür, wie dieses Formular auf dem Bildschirm dargestellt wird.

Der einfache Standard

Ganz ohne Layout-Konfiguration wird jedes bearbeitbare Feld eines pro Zeile gerendert, von oben nach unten, in der natürlichen Spaltenreihenfolge der Tabelle (oder der Reihenfolge von fields(), falls Sie diese aufgerufen haben). Das erfordert keinerlei Einrichtung und ist die richtige Wahl für kurze Formulare:

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

echo $xcrud->render();

rows() - Felder nebeneinander

rows($row, $fields) platziert zwei oder mehr Felder auf derselben nummerierten Zeile des Formulars, statt sie zu stapeln. Jedes Feld, das sich eine Zeile teilt, splittet deren volle Breite gleichmäßig auf:

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

$row ist eine Zeilenposition, kein Index nach Deklarationsreihenfolge - Zeilen werden in aufsteigender numerischer Reihenfolge gerendert, unabhängig davon, welcher rows()-Aufruf in Ihrem PHP zuerst kam. Ein Feld gehört zu höchstens einer Zeile; ein erneuter rows()-Aufruf dafür verschiebt es, statt es zu duplizieren. Zeilen sind unabhängig von jedem anderen Layout unten und lassen sich frei damit kombinieren.

ParameterTypStandardBeschreibung
$rowinterforderlichZeilenposition (1 oder größer); Zeilen werden in aufsteigender numerischer Reihenfolge gerendert
$fieldsstringerforderlichKommagetrennte Liste bearbeitbarer Feldnamen, die auf dieser Zeile platziert werden

rows() + aside() - eine dauerhafte Seitenspalte

aside($fields) zieht Felder vollständig aus dem Hauptformularfluss heraus in eine separate Spalte, die daneben sichtbar bleibt, während alles andere - einfache Felder, rows()-Paare, was auch immer übrig bleibt - den Hauptbereich belegt. Häufig wird sie mit rows() kombiniert, damit der Hauptbereich kompakt bleibt und die Seitenspalte Uploads oder sekundäre Felder aufnimmt:

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

Aside-Felder stapeln sich von oben nach unten in der Reihenfolge, die die eigene Feldliste des Formulars bereits vorgibt - es gibt nur eine Aside-Spalte, also keine Zeilennummer, die man ihr geben könnte. Hinweis: Bei einer Tabelle, die auch https://xcrudnova.xcrud.net/docs/de/nested-tables-overview verwendet, bleibt die Aside-Spalte nur innerhalb des eigenen "Details"-Tab-Panels des übergeordneten Datensatzes, nicht über alle Nested-Tabs hinweg.

ParameterTypStandardBeschreibung
$fieldsstringerforderlichKommagetrennte Liste bearbeitbarer Feldnamen, die in die Seitenspalte gezogen werden

Der Bearbeitungsmodus-Umschalter (clientseitig)

Unabhängig davon, wie die eigenen Felder eines Formulars angeordnet sind, steuert set_edit_mode($mode), wie das Formular selbst dargestellt wird, wenn eine Zeile zum Hinzufügen/Bearbeiten geöffnet wird:

$xcrud->set_edit_mode('side');
ModusBeschreibung
modalZentriertes Popup-Dialogfeld über dem Grid (der Standard)
sideVom Bildschirmrand einschiebendes Drawer-/Offcanvas-Panel
current"Normal" - das Formular ersetzt das Grid inline, direkt auf der Seite selbst

Zwei weitere Modi existieren, sind aber reines JS - dafür gibt es keinen set_edit_mode()-Wert, nur das "⋯ Weitere Optionen"-Menü der Toolbar (siehe https://xcrudnova.xcrud.net/docs/de/grid-toolbar-and-more-options-menu) kann sie zur Laufzeit erreichen:

ModusBeschreibung
split_leftGrid und Formular nebeneinander angezeigt, Formular links angedockt, in einer größenverstellbaren Splitansicht
split_rightDieselbe Splitansicht, Formular stattdessen rechts angedockt

Anders als modal/side verstecken oder überdecken die Split-Modi das Grid nie - dessen Datentabelle wird lediglich schmaler und bleibt vollständig klickbar, während eine Zeile daneben bearbeitet wird.