Viennamade: Formulargröße

Herrschaften,

auf der Seite an der ich eben bastle ist oben ein handflächengroßes (wie bitte?) Formular mit diversen Eingabeelementen. Aufgrund der Eingaben hier wird unterhalb eine Tabelle aktualisiert (PHP/MySQL).
Jetzt will ich zusätzlich in die th-Elementen neben den Überschriften Buttons reingeben und so dem Anwender die Sortierung der Tabelle ermöglichen. Damit ich die Sortierwünsche verarbeiten kann mit $_POST dachte ich an submit-Buttons.
Da ist es dann aber nötig, die Tabelle in Formular reinzugeben. Die Tabelle hat bis zu 800 Datensätze (Performance ist sicher kein Problem), entsprechend groß wird dann das Formular. Ist das nicht unorthodox? Wie geht das gescheiter?

Viele Grüße
Viennamade

  1. Hello,

    will man denn immer die gesamte Tabelle sehen?
    Meistens scheut man sich doch nur einen Ausschnitt an und findet dann dort einen Datensatz, um den herum man gerne die übrigen Datensätze sortiert anzeigen lassen würde.

    Also benötigst Du den Aufsetzpunkt, von dem ab Du in ASC- und DESC- Richtung jeweils z.B. 10 Datensätze aus der Tabelle holst und dann für die Anzeige zusammenstellst.

    Das Tebellenlauyout (Datenbank) muss allerdings Rücksicht auf diesen Wunsch nehmen, wenn über eine Duplicate-Spalte sortiert werden soll.

    Liebe Grüße aus dem schönen Oberharz

    Tom vom Berg

    --
     ☻_
    /▌
    / \ Nur selber lernen macht schlau
    http://bergpost.annerschbarrich.de
    1. Hallo,

      will man denn immer die gesamte Tabelle sehen?

      vielen Danke für Eure Beiträge.

      die Seite wird aufgerufen und man sieht 800 Tabellenzeilen (Datensätze). Dann klickt der Besucher die Checkbox "Frauen". Die Seite wird neu aufgebaut, 400 Datensätze sinds nur mehr. Klick auf "Kinder": 600 Datensätze (where sex in (Frau, Mann, Kind). Aber es gibt auch "Deutsche", "Österreicher" und so. "Abeiter", "Angestellte", "Arbeitslose". Das ist zwar nicht bandbreitenschonend aber die Funktion ist gut (und wird mit Begeisterung aufgenommen).

      Jetzt kommt noch die Sortierung dazu. Also Buttons in die th-Elemente und mit denen den Sort-Abschnitt des SQL-Strings machen. Gunnar schreibt Javascript und hat sicher recht, jedoch muß ich auch hier die Button-Values ins $_POST bringen, denn wenn jemand auf "Frauen" klickt soll die Sortierung beispielsweise nach "Nachnamen" nicht verloren gehen.

      Also muß die Tabelle rein in Formular?

      Viennamade

      1. Hi,

        die Seite wird aufgerufen und man sieht 800 Tabellenzeilen (Datensätze). Dann klickt der Besucher die Checkbox "Frauen". Die Seite wird neu aufgebaut, 400 Datensätze sinds nur mehr.

        Du überträgst also anfangs _alle_ Datensätze zum Browser.
        Warum werden dann nicht einfach per Javascript die Männer ausgeblendet (allgemeiner: die Datensätze, die momentan nicht erwünscht sind)?

        Klick auf "Kinder": 600 Datensätze (where sex in (Frau, Mann, Kind).

        Huch?
        Ich persönlich würde zwar 3 (oder 5) Werte *) für Geschlecht vorsehen, aber Kind wäre nicht dabei.

        Kind zu sein ist doch nicht eine Frage des Geschlechts, sondern des Alters ...

        Aber es gibt auch "Deutsche", "Österreicher" und so. "Abeiter", "Angestellte", "Arbeitslose". Das ist zwar nicht bandbreitenschonend aber die Funktion ist gut (und wird mit Begeisterung aufgenommen).

        Würde sie auch, wenn das per Javascript geregelt würde.

        Jetzt kommt noch die Sortierung dazu. Also Buttons in die th-Elemente und mit denen den Sort-Abschnitt des SQL-Strings machen. Gunnar schreibt Javascript und hat sicher recht, jedoch muß ich auch hier die Button-Values ins $_POST bringen, denn wenn jemand auf "Frauen" klickt soll die Sortierung beispielsweise nach "Nachnamen" nicht verloren gehen.

        Da sowohl die Filterung als auch die Sortierung per js erledigt werden kann, muß überhaupt nichts übertragen werden.

        *) männlich, weiblich, juristisch (ggf. noch die eher seltenen Fälle "Neutrum" und "mixed")

        cu,
        Andreas

        --
        Warum nennt sich Andreas hier MudGuard?
        O o ostern ...
        Fachfragen per Mail sind frech, werden ignoriert. Das Forum existiert.
        1. Hallo,

          Da sowohl die Filterung als auch die Sortierung per js erledigt werden kann, muß überhaupt nichts übertragen werden.

          mit dieser Antwort habe ich nicht gerechnet und sie ist auch bestechend. Andererseits muß der Neuaufbau möglich sein, weil die Datenbank alle 20 Minuten upgedatet wird. Und hier sollte die Sortierung nicht verloren gehen.
          Wie erhalte ich die Sortierparamter?

          Beste Grüße
          Dieter Walenta

          1. Hi,

            Da sowohl die Filterung als auch die Sortierung per js erledigt werden kann, muß überhaupt nichts übertragen werden.

            mit dieser Antwort habe ich nicht gerechnet und sie ist auch bestechend. Andererseits muß der Neuaufbau möglich sein, weil die Datenbank alle 20 Minuten upgedatet wird. Und hier sollte die Sortierung nicht verloren gehen.
            Wie erhalte ich die Sortierparamter?

            In dem du sie beim Request mit übergibst.
            Wenn du dich entscheiden solltest, sowieso JavaScript für erweiterte Funktionalität hinsichtlich der Sortierung zur Voraussetzung zu machen - dann kannst du auch die Selektionsparameter per JavaScript mit übergeben, selbst wenn sie sich nicht mit im Formular befinden sollten.

            MfG ChrisB

            --
            “Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]
            1. Liebe Leute,

              Wie erhalte ich die Sortierparamter?

              vielen Dank für die Beiträge! Da sind ganz tolle Hilfen dabei, ich bleibe dabei und mache das im $_POST. In diesem Fall, die Daten werden nur innerhalb eines superschnellen VPNs abgefragt. Ich gehe davon aus, daß eine große Tabelle in einem Form-Element nicht störend ist, zumal das so auch valide ist.

              Beste Grüße
              Viennamade

  2. @@Viennamade:

    nuqneH

    Da ist es dann aber nötig, die Tabelle in Formular reinzugeben. Die Tabelle hat bis zu 800 Datensätze

    Wird die gesamte Tabelle im Browser angezeigt? Wenn ja, also schon alle Daten beim Client sind, wäre es unsinnig, dieselben Daten nochmals vom Server anzufordern. Die Sortierung wäre dann auf dem Client mit JavaScript zu machen: Daten in ein Array einlesen und dieses sortieren.

    Qapla'

    --
    Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
    (Mark Twain)
  3. hi,

    ...ich die Sortierwünsche verarbeiten kann mit $_POST dachte ich an submit-Buttons.

    Dafür würde ich mal nicht so am POST festhalten und einfach nur Links einbauen, die dann per GET rausgehen. Die zu sortierenden Spalten kriegen einfach nur eine Nummer, das macht auch die Prüfung der Eingabe einfach.

    Hotti

    --
    Wenn der Kommentar nicht zum Code passt, kann auch der Code falsch sein.
  4. Hi,

    auf der Seite an der ich eben bastle ist oben ein handflächengroßes (wie bitte?) Formular mit diversen Eingabeelementen. Aufgrund der Eingaben hier wird unterhalb eine Tabelle aktualisiert (PHP/MySQL).
    Jetzt will ich zusätzlich in die th-Elementen neben den Überschriften Buttons reingeben und so dem Anwender die Sortierung der Tabelle ermöglichen. Damit ich die Sortierwünsche verarbeiten kann mit $_POST dachte ich an submit-Buttons.
    Da ist es dann aber nötig, die Tabelle in Formular reinzugeben. Die Tabelle hat bis zu 800 Datensätze (Performance ist sicher kein Problem), entsprechend groß wird dann das Formular. Ist das nicht unorthodox? Wie geht das gescheiter?

    Wenn Du dabei bleiben willst, jeweils über den Server zu gehen:

    speichere die aktuelle Konfiguration in der Session.
    Dann brauchst Du bei einer Änderung der Sortierung nur genau diese Änderung "jetzt wird nach Spalte xyz sortiert" zu übertragen.
    Der Sortier-Link bzw. das Sortier-Formular braucht also nur genau diese eine Information übertragen.

    Genauso bei einer Änderung der Filter-Kriterien - es braucht nur das übertragen zu werden (und dann in der Session gespeichert werden), was sich ändert.

    cu,
    Andreas

    --
    Warum nennt sich Andreas hier MudGuard?
    O o ostern ...
    Fachfragen per Mail sind frech, werden ignoriert. Das Forum existiert.