Olaf: Frames oder anders

Guten Abend zusammen,

auf einer Seite sollen viele Informationen aus einer Datenbank dargestellt werden. Die Informationen sind in Sektionen (Blöcke) unterteilt. Jeder Block bietet auch direkt die Möglichkeit, die ausgelesenen Werte zu ändern (UPDATE). Dazu wird neben jedem Wert ein Formular-Feld für den neuen Wert angezeigt.

Jeden Block wollte ich als table realisiren, den ich über eine ID ansprechen kann.

Um die Übersichtlichkeit zu waren, wollte ich auf der linken Seite über einen Frame eine Anzeige-Steuerung realisieren. Dort soll man über Schaltflächen auswählen können, welche Informations-Blöcke man sich anzeigen lassen möchte.

Sind Frames zu altbacken bzw. ist das Eurer Meinung nach kein guter Ansatz und habt ihr Alternativen oder vielleicht Web-Beispiele über die man diskutieren kann?

Es grüßt
Olaf

  1. je nach verwendung, wenn es eine interne sache ist, kann man ruhig frames nutzen. Für das was du da ansprichst bieten sich divs aber eigentlich an. Damit nicht immer alles neu laden muss, kannst du auch gut ajax verwenden, damit nur immer ein div aktuallisiert wird und man beim bearbeiten nicht erst auf die antwort vom server warten muss.

    Was für Daten hast du denn da so grob? Abhängigkeiten von einem zum anderen Feld? also z.b. Selects die aus anderen Blöcken gebildet werden?

    Was mich interessieren würde, wäre hier vor allem auch die Zielgruppe! Für die Masse kann man nur auf Formulare setzen. Wie heißt es so schön, "die Masse ist dumm"!

    1. ajax

      huhuhu - damit kenne ich mich leider garnicht aus. Müsste ich mich erst einarbeiten. Hatte auch an divs gedacht, aber wegen des "alles neu ladens" an frames gedacht. wenn ajax hier eine Alternative ist muss ich da wohl durch.

      Zwischen den Daten bestehen keine Abhängigkeiten. Die Daten sind auch recht simpel. Es geht um bevorzugte Einstellungen. Also wird es einen Block Farben. einen Block Schriften usw. geben.

      Zielgruppe ist überschaubar. Das Projekt ist als Demonstrator gedacht und wird nur von Leuten bedient werden, die wissen wo die Fallen sind :-)

      Aus den Daten soll eine XML-Datei generiert werden, die auf einem anderen System zur nutzerindividuellen Anpassung des Systems benötigt wird.
      Besagte Seite soll dem Nutzer einen Überblick über sein "Profil" geben und ihm erlauben, im Bedarfsfall neue Werte zu definieren (Update).

      Es grüßt
      Olaf

      1. Noch eine Zusatzfrage:
        Angenommen, der Nutzer will einen Wert in seinen Einstellungen ändern, würdet Ihr die Verarbeitung der Formulareingaben für jeden Block in einer separaten Datei abarbeiten lassen oder alles in die gleiche Datei packen?
        Die Seite soll natürlich erst nach einem erfolgreichen Login (mit sessions) aufrufbar sein.

        Es grüßt
        Olaf

        1. ich würde das ganze, je nach blockgröße, unabhängig gestalten.
          Jeder Block kann einzeln gespeichert werden.

          Damit sparst du dir das Updaten bzw vergleichen, was sich denn wirklich geändert hat. Bei großen Eingaben ist man da meist froh drum.

          Für die Sicherheit kann ich dir (wenn du PHP einsetzt) $_SESSION empfehlen.
          Damit kannst du dir ohne Probleme die Daten merken und eben auch einen login realisieren.

          Alternative eben mit htaccess

          1. Jeder Block kann einzeln gespeichert werden.

            Ja, so werd ich's machen.

            Für die Sicherheit kann ich dir (wenn du PHP einsetzt) $_SESSION empfehlen.
            Damit kannst du dir ohne Probleme die Daten merken und eben auch einen login realisieren.

            Mit PHP und sessions kenne ich mich ganz gut aus. Da hab ich schon ein paar Projekte mit bauen müssen.

            Ich stelle mir nur gerade die Frage, ob ich die Auswertung und das Abspeichern der Formulareingaben für jeden Block in der gleichen Datei mache action="$_SERVER['PHP_SELF']" oder lieber in eine separate Datei (bspw. farb_praeferenzen_update.php) auslagere.
            Gibt es da Vor- und Nachteile?

            Es grüßt
            Olaf

            1. verschiedene Dateien bieten dir natürlich den Vorteil, dass es schneller mal erweiter ist durch kopieren.

              Ich verwende aber immer eine zentrale ajax-datei die sich um die ganzen sicherheitsthemen kümmert und steuere über ein hidden-feld die jeweilige Datei an (nach prüfung). So kann man die ganzen anderen Dateien in einen geschützten bereich schieben und hat nur die eine Datei als "angriffspunkt".

              Beachte bitte, dass es sein kann, dass JS nicht geht. Dann sollte man das ja eventuell auch noch absenden können => alle felder kommen dann gleichzeitig an. Da du aber einen beschränkten Userkreis hast, würde ich das Problem ignorieren!

              Beachte aber, dass du <button> verwenden solltest statt input-submit, da sonnst das Formular wirklich abgesendet wird, was wohl nicht so ganz dein ziel sein wird ;)

              Am besten du schaust auch gleich, dass die daten per POST gesendet werden und nicht per GET.

              Noch ein weiterer Tipp. Eventuell solltest du die Boxen teilweise zuklappen! Dann kommt man mit den Speicherbuttons nicht so durcheinander und du kannst mit dem Platz großzügiger umgehen!

      2. ajax
        huhuhu - damit kenne ich mich leider garnicht aus. Müsste ich mich erst einarbeiten. Hatte auch an divs gedacht, aber wegen des "alles neu ladens" an frames gedacht. wenn ajax hier eine Alternative ist muss ich da wohl durch.

        So hab ich das bisher auch immer gesehen, finde es aber eine tolle Sache, wenn man mal mit Internet arbeiten muss, das noch nicht mal das erste DSL übertrumpft ;)

        Je nach Lust und Laune, kannst du so sogar ohne wirkliches Speichern auskommen, da dies bereits bei verlassen jedes einzelnen Feldes möglich wäre! (Wem es so gefällt, die meisten haben da ihre Probleme mit, da viel schiefgehen kann)

  2. hi,

    Sind Frames zu altbacken

    Ich fand ja Frames als html-includes immer gut. Das Zend-Framework hatte seine API-Documentation noch vor einigen Jahren in eine Frameset. Jetzt ist da "nur" noch ein IFrame, wenn ich das recht sehe: http://framework.zend.com/apidoc/core/.

    Für (professionelle) Webseiten spielen Frames m.E. keine Rolle mehr. Ein Frameset einem Kunden anzubieten wäre wohl "altbacken". Und dass sie irgendwann "deprecated" werden heißt in der Umkehrung wohl auch eine Art von "altbacken".

    Also nimm sie nicht, es sei denn, Dir reichts und du sparst Dir (erstmal) Arbeit damit ;-). Denn Frames sind ja schnell realisierbar, ohne großes drumrum.

    mfg

    tami

    1. Für (professionelle) Webseiten spielen Frames m.E. keine Rolle mehr. Ein Frameset einem Kunden anzubieten wäre wohl "altbacken". Und dass sie irgendwann "deprecated" werden heißt in der Umkehrung wohl auch eine Art von "altbacken".

      Aktuell gibt es beim neusten InternetExplorer schon Probleme mit den Frames. Wenn du in einem Frame noch ein Script benötigst, das auch auf Frames setzt (z.b. FCKEditor) dann wird dieser Fehlerhaft funktionieren bzw. garnicht.

      Nachträglich umbauen geht meist ja nicht mehr so schnell!

      1. hi niklas ;-),

        Für (professionelle) Webseiten spielen Frames m.E. keine Rolle mehr. Ein Frameset einem Kunden anzubieten wäre wohl "altbacken". Und dass sie irgendwann "deprecated" werden heißt in der Umkehrung wohl auch eine Art von "altbacken".

        Aktuell gibt es beim neusten InternetExplorer schon Probleme mit den Frames. Wenn du in einem Frame noch ein Script benötigst, das auch auf Frames setzt (z.b. FCKEditor) dann wird dieser Fehlerhaft funktionieren bzw. garnicht.

        Nachträglich umbauen geht meist ja nicht mehr so schnell!

        Dass es der IE immer noch schafft. Crockford oder jemand in der Art nannte ihn glaube ich mal sinngemäß "Arbeitsbeschaffungsmaßnahme für Webseitenbauer". Oder agiert der IE standardkonform (was ich jetzt eigentlich ab IE8 geglaubt hätte ...).

        mfg

        tami

        1. Dass es der IE immer noch schafft. Crockford oder jemand in der Art nannte ihn glaube ich mal sinngemäß "Arbeitsbeschaffungsmaßnahme für Webseitenbauer". Oder agiert der IE standardkonform (was ich jetzt eigentlich ab IE8 geglaubt hätte ...).

          Ja so sehen wir das leider auch immer wieder ...
          nein es ist keine konformität zu erkennen dabei.
          Laut spezifikationen ist das verschachteln von Frames nicht verboten meines wissens. Es gibt da noch ein paar so Fälle, wo der IE nicht tief verschachtelt werden kann. (Fallen mir aber auch als nur ein, wenn ich es mal wieder falsch mache!)

  3. Guten Morgen,

    zur Darstellung und Filterung großer Datenmengen in Tabellenform nutze ich seit neuestem sehr gerne Slickgrid ... schau es dir vielleicht einfach mal an, es ist unglaublich, was man damit alles machen kann.

    Slickgrid Beispiele

    Das könnte für deinen Anwendungsfall gut funktionieren.

    mfg
    Knusperklumpen

    1. Hallo Knusperklumpen,

      ja, verdammt interessant. Schau ich mir mal näher an und werde es dann vielleicht für den Admin Bereich benutzen zur Auswertung über alle Nutzerdaten.
      Für den einzelnen Nutzer ist die Formularvariante mit AJAX besser geeignet.
      Daher arbeite ich mich heut mal in AJAX ein.

      Es grüßt
      Olaf