200 Formulardaten auf mehrere Seiten

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • 200 Formulardaten auf mehrere Seiten

    Hallöle,

    ich habe folgendes Problem:

    Ich erstelle gerade eine Seite über die man Fotos bestellen kann.
    (Tabelle: Thumbnail, Bildinfo, Formularfeld in das man die Bestellmenge einträgt.)
    Das können leicht mal über 200 Fotos sein, die hier angeboten werden sollen.
    Durch die Thumbnails entstehen dann natürlich entsprechende Ladezeiten, die ich gern minimieren möchte.
    Mein Ansatz wäre, immer nur 20 Fotos pro Seite anzuzeigen. So weit bin ich jetzt auch.

    Das eigentliche Problem: Natürlich werden nur von der jeweils letzten Seite die Bestellmengen übernommen, weil erst hier die Formulardaten verschickt werden.
    Vorher blättere ich immer mit einem Link, der auf phpself?x=seitennummer verweist.

    Wie würdet ihr das angehen?
    Vermutlich müsste ich den Submit-Button auch zum "blättern" verwenden und erst nach der letzten Seite auswerten, oder?
    Und dann die Daten pro Seite jeweils zwischenspeichern?
    Dann würde sich wieder die Frage stellen, ob ich in der DB in einer Temp-Tabelle zwischenspeichere (schlecht bei gleichzeitigem Zugriff) oder in ein Array (kompliziert das über die Seiten zu "retten").

    Bin für jeden Denkanstoss dankbar, vielleicht gibt es auch eine ganz einfache Lösung an die ich noch nicht gedacht habe.

    Dann habe ich noch was, was mit obigem Problem nichts zu tun hat:
    Das Seitenlayout wird über Tabellen "gestrickt".
    Bei IE sieht das auch gut aus, bei Opera und Firefox habe ich doppelte Rahmen, die ich mir nicht erklären kann.
    Ich habe eine externe Stylesheet, in der definitiv nur jeweils <td> einen Rahmen hat und - wie gesagt - IE zeigt auch das gewünschte Ergebnis.
    Hat hier ganz spontan noch jemand eine Idee?

    Merci schon mal
    Carsten

  • #2
    Ich glaub, du sitzt z.T. im falschen Foren-Bus.
    Dein kleines Shop-System sollte den Warenkorb - egal auf welcher Seite - in einer db speichern. Dann kann der User blättern wie er lustig ist.

    Zum Thema "umblättern" oder pagination gibts ne Menge guter Sachen, wenn man danach sucht.

    Deine Tabellenrahmen könnten evtl. durch fehlende Angaben zu border, padding und spacing herrühren? Das kann aber nur dein code oder die Kristallkugel zeigen.
    Und ist man alt wie ein Kuh, lernt man immer noch dazu.
    THX, LOL, ROFL & Co. -> Netzjargon auf Wikipedia

    Kommentar


    • #3
      Original geschrieben von Husti
      Ich glaub, du sitzt z.T. im falschen Foren-Bus.
      Dein kleines Shop-System sollte den Warenkorb - egal auf welcher Seite - in einer db speichern. Dann kann der User blättern wie er lustig ist.

      Zum Thema "umblättern" oder pagination gibts ne Menge guter Sachen, wenn man danach sucht.

      Deine Tabellenrahmen könnten evtl. durch fehlende Angaben zu border, padding und spacing herrühren? Das kann aber nur dein code oder die Kristallkugel zeigen.
      Sitze ich wirklich im falschen Bus?
      Nicht das umblättern ist mein Problem - das bekomme ich schon hin - das Problem sehe ich schon eher auf der HTML-Seite:
      Wie bekomme ich durch reines Umblättern die Daten aus den Formularfelden?
      Nur durch drücken von Submit oder gibt es noch eine andere Möglichkeit?

      Kommentar


      • #4
        Woher kommen deine Daten - statisch aus dem code oder dynamisch aus einer Datenbank?
        Wie auch immer - jeder Artikel muss die Chance haben, als Bestellung (zwischen)gespeichert zu werden - egal auf welcher Seite.
        Jeder Artikel benötigt also 1 Formular.
        Wohin der "kleine Warenkorb" gespeichert werden soll, ist auch ganz interessant.
        Erst wenn das geklärt ist, kann geblättert werden.
        Und ist man alt wie ein Kuh, lernt man immer noch dazu.
        THX, LOL, ROFL & Co. -> Netzjargon auf Wikipedia

        Kommentar


        • #5
          Wieso schreibst du sie nicht in die Session?
          ich glaube

          Kommentar


          • #6
            Original geschrieben von Husti
            Woher kommen deine Daten - statisch aus dem code oder dynamisch aus einer Datenbank?
            Wie auch immer - jeder Artikel muss die Chance haben, als Bestellung (zwischen)gespeichert zu werden - egal auf welcher Seite.
            Jeder Artikel benötigt also 1 Formular.
            Wohin der "kleine Warenkorb" gespeichert werden soll, ist auch ganz interessant.
            Erst wenn das geklärt ist, kann geblättert werden.
            - Weder noch Ich lese aus einem Verzeichnis die Dateinamen der Thumbnails aus und liste sie auf der Seite untereinander auf.
            - Was bis jetzt völlig problemlos funktioniert ist alle 200 Fotos auf einer Seite aufzulisten und die Formulardaten - in dem Fall die zu bestellende Anzahl - in ein Array zu schreiben: (<input name='text[]'...>) Ich brauche also nicht für jeden Artikel eine Seite.
            - letztendlich wird natürlich alles in einer DB gespeichert.

            Aber ich glaube allein das ausformulieren hier hat mich schon zu einem Lösungsansatz gebracht:

            - Verzeichnis komplett auslesen, alle Dateien von min bis max anzeigen (min=0, max=09, also 10 Stück)
            - Submit-Button ruft über PHPSELF das selbe Formular auf und überträgt die Formulardaten (Bestellmengen-Array) + einen Zähler, dass momentan 10 Dateien angezeigt sind
            - Am Anfang des Scripts prüfe ich, ob der Zähler gesetzt ist- falls ja, wird der Zähler, der min und der max Wert um 10 erhöht und das Bestellmengen-Array entweder in ein Sammel-Array geschrieben (wobei es immer ein bisschen "fummelig" ist so ein Array wieder durch die späteren Seitenaufrufe zu bekommen - hier wäre mein Ansatz array serializen und per hidden-field posten oder eine Session anlegen) oder in eine temporäre Tabelle zu schreiben.
            (Hier wäre mein Problem dann die Möglichkeit, dass zwei gleichzeitige Zugriffe zum Crash führen würden. Lösungsansatz: Tabellename ist Zeitstempel und Tabellenname wird für spätere Zugriffe in der Session gespeichert?)
            - nächster Submit blätter weiter ...
            - Submit auf letzter Seite führt erst die eigentliche Bestellung bzw. Prüfung aus. (Wobei hier wieder die Frage wäre, woher weiss ich, wann ich auf der letzten Seite bin?)

            Aber prinzipiell bin ich jetzt auf dem richtigen Weg, oder?

            Kommentar


            • #7
              Der Weg ist nach meiner bescheidenen Meinung nach ok.

              Wenn Du nicht jeden Tag deinen Fotobestand gravierend veränderst, schreib doch ein festes Produkt-array in eine .inc. Ansonsten muss dein Server jedes mal dein Img-Verzeichnis aufs neue durchforsten.

              Das Array wird entsprechend der anzuzeigenden Artikel je Seite - auf der aktuellen Siete ausgegeben.
              Kleine Mathematik, auf Seite 4 von 200 Artikel bei max. 20/Seite das array anzusprechen und den entsprechenden Bereich darzustellen.

              ministry hat den Tip mit sessions gegeben. Geh davon aus, dass mehr als 2 Jockels unbedingt gleichzeitig deine Fotos kaufen.

              Halt dich nicht an deiner letzten Seite fest. Kein user lässt sich "zwingen" alle deine 200 Fotos durchzublättern, um bei dir endlich für Umsatz sorgen zu dürfen.
              Warenkorb bestücken und direkt an die Kasse muss immer und überall möglich sein.
              Und ist man alt wie ein Kuh, lernt man immer noch dazu.
              THX, LOL, ROFL & Co. -> Netzjargon auf Wikipedia

              Kommentar


              • #8
                Original geschrieben von Husti
                Der Weg ist nach meiner bescheidenen Meinung nach ok.

                Wenn Du nicht jeden Tag deinen Fotobestand gravierend veränderst, schreib doch ein festes Produkt-array in eine .inc. Ansonsten muss dein Server jedes mal dein Img-Verzeichnis aufs neue durchforsten.

                Das Array wird entsprechend der anzuzeigenden Artikel je Seite - auf der aktuellen Siete ausgegeben.
                Kleine Mathematik, auf Seite 4 von 200 Artikel bei max. 20/Seite das array anzusprechen und den entsprechenden Bereich darzustellen.

                ministry hat den Tip mit sessions gegeben. Geh davon aus, dass mehr als 2 Jockels unbedingt gleichzeitig deine Fotos kaufen.

                Halt dich nicht an deiner letzten Seite fest. Kein user lässt sich "zwingen" alle deine 200 Fotos durchzublättern, um bei dir endlich für Umsatz sorgen zu dürfen.
                Warenkorb bestücken und direkt an die Kasse muss immer und überall möglich sein.
                - Der Fotobestand ändert sich immer. Es ist nicht so, dass ich fix 200 Fotos anbieten möchte, sondern jeder Kunde hat die Möglichkeit nach dem Fotoshooting seine Fotos über's Netz vorab schon mal anzuschauen und eine Auswahl zu treffen. Des weiteren kann er seinen Login an Verwandte/Bekannte weitergeben und die können auch bestellen.
                Der Bestand variiert also extrem pro Kunde. Es können mal nur 10 Fotos sein aber der Extremfall von 200 oder mehr kann genauso vorkommen.
                Deshalb kopiere ich immer erst die Bilder in's Verzeichnis und lese sie dann aus.
                Und genau deshalb halte ich mich auch an der letzten Seite fest. Ich gehe schon stark davon aus, dass jeder seine Bilder komplett anschaut, bevor er letztendlich die Bestellung abschickt.
                Zuletzt geändert von HiddenX; 05.06.2007, 11:02.

                Kommentar


                • #9
                  Ok - dann macht das einmalige Auslesen der Bildordner Sinn.
                  Du hast also nicht nur x Fotos, sondern x Galerien mit x Fotos in Abhängigkeit vom eingeloggten Kunden.
                  Der Login kann parallel von Bekannten, Freunden etc. auch gleichzeitig genutzt werden.
                  Die Bestellung erolgt definitiv erst auf der letzten Seite.

                  - max anzuzeigende Fotos/Seite festlegen
                  - Bildpfad festlegen

                  Auf Seite 1:
                  - eindeutige Session zuweisen
                  - Fotobezeichnungen in Array
                  - Bestellung in Array
                  - Fotobestand von Startfoto bis max anzuzeigende Fotos/Seite
                  - Hidden fields belegen

                  Auf FolgeseitenO
                  - Session prüfen
                  - Fotobestand von hochgezählten Startfoto bis max anzuzeigende Fotos/Seite
                  - Bestellung in Array
                  - Prüfung auf letzte Seite anhand des max angezeigten Fotos
                  - Hidden fields belegen

                  Auf letzter Seite
                  - Bestellung aus Array listen
                  - Bestelldaten aufnehmen
                  - versenden
                  - Session beenden
                  Und ist man alt wie ein Kuh, lernt man immer noch dazu.
                  THX, LOL, ROFL & Co. -> Netzjargon auf Wikipedia

                  Kommentar


                  • #10
                    Sehr gut zusammengefasst!

                    Manchmal hilft es einfach über etwas zu reden, wo man sich vorher drin verrannt hat.
                    Ich versuche das jetzt mal so- vielen Dank erst mal!

                    Kommentar

                    Lädt...
                    X