borisbaer: Formulare einer Tabelle mit verschiedenen Funktionen organisieren

Beitrag lesen

problematische Seite

Hallo zusammen,

ich habe eine Tabelle mit verschiedenen Funktionen erstellt (siehe hier), musste diese jedoch etwas umständlich organisieren, weil eine Tabelle ja nicht mehrere forms enthalten darf.

Momentan sind diese Funktionen enthalten:

  • auf- und absteigend nach Spalte sortieren (durch Klick auf die jeweilige Spalte bei großem Viewport; durch ein Select-Element bei kleinem Viewport)
  • Sortierung zurücksetzen (nur bei kleinem Viewport nötig und möglich)
  • Anzahl der anzuzeigenden Einträge festlegen
  • alle Spalten nach (Teil-)Übereinstimmungen durchsuchen
  • Suche zurücksetzen
  • zu einer bestimmten Seite springen (nur bei kleinem Viewport)
  • nur Admin: Eintrag erstellen

Für das Sortieren bei kleinem Viewport sowie für die Suchfunktion habe ich jeweils ein separates Formular, bevor die eigentliche Tabelle beginnt.

Für alle anderen Funktionen habe ich nur ein Formular um die Tabelle herum.

Würde ich alle Funktionen in einem Formular vereinen wollen, wäre JavaScript unabdingbar.

Bei deaktiviertem JavaScript kann ich die Tabelle momentan trotzdem mit allen Funktionen verwenden. Das Einzige, was da aktuell bei ausgeschaltetem JavaScript passiert, ist, dass nach dem Erstellen eines neuen Eintrags die Sortierung zurückgesetzt wird.
Nicht ideal, aber immerhin brauche ich nichts zwangsweise JS.

Bei dem Formular, das die Tabelle einschließt, muss ich beim Absenden jedoch recht viele Bedingungen verwenden, damit das geschieht, was geschehen soll, z.B.:

if ( isset( $_POST['sort'] ) && !isset( $_POST['reset'] ) && !isset( $_POST['create'] ) )

Deshalb wollte ich hier mal nachfragen, welche Möglichkeiten es denn gibt, POST-Daten, die ich im Normalfall einfach durch separate Formulare trennen würde (was ich hier aber nicht kann, da Tabellen nicht mehrere forms enthalten können), stattdessen zu organisieren.

Ich hoffe, mein Anliegen ist einigermaßen klar geworden.

Grüße
Boris

akzeptierte Antworten