Vorgehensfrage php session, js ajax

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

  • Vorgehensfrage php session, js ajax

    sorry, besserer titel is mir bei dem wetter nicht eigefallen

    wollte mal kurz eure meinung hören. ich habe gerade ein formular, welches sich über mehrere "reiter" erstreckt. die einzelnen reiter sind css gesteuert (display: none ... etc) - sprich, es ist keine form-action dazwischen.

    nu such ich eine geeignete stelle, um die formular-inhalte in die session zu schreiben. warum? damit die seite mit dem formular seine daten auch behält, wenn sich zwischenzeitlich andere seiten angeschaut werden.

    mein derzeit erster gedanke ist, jedes feld mit onblur (bzw onclick bei boxen) zu versehen und ne lüdde ajax funktion schreiben, die im hintergrund ein php-script aufruft, was die session bedient.

    klingt mir allerdings irgendwie zu umständlich. hat jemand eine bessere idee? btw. cookies tabu

    (warum im php-forum? weil mein problem beim füttern der php-session liegt )

    danke schon ma im voraus
    **********
    arkos
    **********

  • #2
    (warum im php-forum? weil mein problem beim füttern der php-session liegt )
    Bist du dir da sicher???

    Wie man ne Session in PHP füttert, weißt du sicher. Wenn nicht, dann :RTFM:. Dein Problem ist doch offensichtlich, dass du nicht weißt, wann du die Session füttern sollst.

    Kommentar


    • #3
      Original geschrieben von TobiaZ
      Bist du dir da sicher???

      Wie man ne Session in PHP füttert, weißt du sicher. Wenn nicht, dann :RTFM:. Dein Problem ist doch offensichtlich, dass du nicht weißt, wann du die Session füttern sollst.

      ja, ich weiß, wie ich die php-session fütter - und wann ich sie füttern will. kurz am besten als ein mitschreibe-mechanismus im hintergrund. unabhängig von get oder post.

      meine oben beschriebene ajax funktion klappt auch bestens!!!! nur wollte ich einfach wissen, ob euch was schlaueres einfällt...

      um es zu veranschaulichen:
      js im formular:
      Code:
      onblur="pushSession(this.value,'d53')
      wichtigste funktionszeilen im ajax-script:
      Code:
      function pushSession(value,located)
      ... ...
      xmlHttp.open('GET', 'sessionschreiber.php?p='+value+'&l='+located, true);
      wichtigste sessionschreiber.php-zeile
      PHP-Code:
      $p $_GET['p'];
      $l $_GET['l'];
      $_SESSION['formdata'][$l] = $p
      und so klappts auch - meine frage ist und bleibt: fällt euch was schlaueres ein??
      **********
      arkos
      **********

      Kommentar


      • #4
        also doch ins JS, Forum. *move*

        Kommentar


        • #5
          Original geschrieben von TobiaZ
          also doch ins JS, Forum. *move*
          na gut, von mir aus

          (aber das php-forum is viel aktiver)
          ... und meine frage immer noch offen...
          **********
          arkos
          **********

          Kommentar


          • #6
            Ich halte die Speicherung beim Verlassen eines jeden Inputs für vollkommen überzogen.
            Eventuell beim Wechsel der Tabs ist das angebracht - auf der anderen Seite wüsste ich nicht, warum man das Formular überhaupt speichern sollte~

            btw. hat in Javascript auch nichts zu suchen - ist ja kein Problem, sondern pures Brainstorming.

            Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

            bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
            Wie man Fragen richtig stellt

            Kommentar


            • #7
              Original geschrieben von ghostgambler
              Ich halte die Speicherung beim Verlassen eines jeden Inputs für vollkommen überzogen.
              Eventuell beim Wechsel der Tabs ist das angebracht - auf der anderen Seite wüsste ich nicht, warum man das Formular überhaupt speichern sollte~
              hi ghost,

              in... ich sag mal... 99% der fälle würde ich auch sagen, dass es überzogen ist. in diesem falle aber tatsächlich mal nicht. es ist in diesem falle sehr wichtig, dass die daten (da es nicht zwingend wenige sind) auch beim zufälligen rumnavigieren auf der seite erhalten bleiben - und das auch für die ältere generation als zielgruppe. die geschichte mit dem schreiben beim reiterwechsel habe ich auch schon im kopf gehabt.

              würde wohl auch reichen.... WENN da nicht folgendes problem wäre: die daten müssen auch erhalten bleiben, wenn einer die seite zb wie folgt benutzt:

              ein reiter mit gut vielen daten ausgefüllt... dann aber keinen zweiten reiter geklickt, sondern irgendeinen anderen internen link.
              auf die gestaltung der links der restlichen seiten (außerhalb meine app) habe ich nur bedingt einfluss....
              **********
              arkos
              **********

              Kommentar


              • #8
                evtl. onunload()?

                Kommentar


                • #9
                  Es ist ja sehr löblich, dass du die mangelnden Erfahrungen und Fähigkeiten deiner Zielgruppe berücksichtigst.

                  Aber imho schießt du übers Ziel hinaus. Normalerweise verhalten sich Formulare nämlich so: Wenn ich was eingebe und dann die Seite verlasse ohne das Formular explizit abzusenden, sind meine Eingaben eben futsch (vom Browser Cache mal abgesehen).
                  Deine Formulare sollen sich nun ganz anders verhalten. Das kann gerade unerfahrene Anwender ziemlich verwirren.

                  Kommentar


                  • #10
                    Original geschrieben von TobiaZ
                    evtl. onunload()?
                    danke. darüber denk ich noch immer nach - da kommen schon wieder die nächsten probleme. auch die gestaltung des body-tags liegt nicht zwingend in meiner hand... und höchstwahrscheinlich müsste die function in unonload anhand der verschiedenen formlare auch verschiedene parameter haben. da sind meine überlegungen aber noch nicht abgeschlossen.


                    Original geschrieben von onemorenerd
                    Wenn ich was eingebe und dann die Seite verlasse ohne das Formular explizit abzusenden, sind meine Eingaben eben futsch
                    aus programmierer sicht gebe ich dir recht.
                    aus wirtschaftlicher sicht nicht es wird mit dem ausfüllen und absenden geschäft generiert. und use cases zeigen in dem falle, dass das "merken" sehr willkommen wäre und somit die formdaten auch öfter abgeschickt werden würden.

                    Original geschrieben von onemorenerd
                    Deine Formulare sollen sich nun ganz anders verhalten. Das kann gerade unerfahrene Anwender ziemlich verwirren.
                    diese bedenken erschließen sich mir nicht wirklich. würde es wirklich jemanden verwirren, dass er in einem forumlar, auf ein und der selben website die gleichen daten sieht, die er vor kurzem (innerhalb der session) da selbst eingegeben hat? ich meine nicht.

                    ich danke euch dennoch für die einwände und vorschläge. bitte gerne weiter so. überdenke mein machen immer gerne
                    **********
                    arkos
                    **********

                    Kommentar


                    • #11
                      Original geschrieben von arkos
                      es wird mit dem ausfüllen und absenden geschäft generiert.
                      Und ich als Anwender möchte bitte selbst entscheiden, ob und wann ich ein Geschäft abschließe. Wenn jede Eingabe sofort in deiner Datenbank landet, fühle ich mich belauscht. Ich stehe auf dem Standpunkt, dass meine Daten mir gehören, bis ich sie irgendwohin abschicke, nicht bis ich sie eingebe.

                      würde es wirklich jemanden verwirren, dass er in einem forumlar, auf ein und der selben website die gleichen daten sieht, die er vor kurzem (innerhalb der session) da selbst eingegeben hat?
                      Nein, denn genau so verhalten sich die meisten Browser. Ich kann z.B. dieses Antwort-Formular hier ausfüllen, mittendrin woanders hinsurfen, den Back-Button klicken und das Formular ist immernoch ausgefüllt. Die Browser-Hersteller haben diese Use Cases also erkannt. Du mußt mich nicht beschnüffeln!

                      Kommentar


                      • #12
                        hm... funktioniert aber nicht immer, scheint von den gesendeten Cache-Headern abzuhängen

                        Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                        bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                        Wie man Fragen richtig stellt

                        Kommentar


                        • #13
                          Und ich als Anwender möchte bitte selbst entscheiden, ob und wann ich ein Geschäft abschließe. Wenn jede Eingabe sofort in deiner Datenbank landet, fühle ich mich belauscht. Ich stehe auf dem Standpunkt, dass meine Daten mir gehören, bis ich sie irgendwohin abschicke, nicht bis ich sie eingebe.
                          Na, so krass würde ich es hier nicht sehen. Arkos hat ja beschrieben, dass die daten "nur" in der Session gespeichert werden und nur erst beim Absenden das Geschäft getätigt wird. Kann mir schon vorstellen, dass dies durchaus nützlich sein kann.

                          Allerdings wird es an einer sauberen Umsetzung scheitern.

                          Vielleicht als Kompromiss die Daten optional im Cookie speichern. Ich für meinen Teil lasse Cookies ohnehin mit dem schließen des Browsers löschen. Somit besteht auch keine "Gefahr", wie man sie hinter Cookies vermutet.

                          Wer sie nicht zulässt, hat halt Pech. Diese Lösung ist performance-technisch sicher besser

                          Kommentar


                          • #14
                            Original geschrieben von arkos
                            darüber [onunload] denk ich noch immer nach - da kommen schon wieder die nächsten probleme. auch die gestaltung des body-tags liegt nicht zwingend in meiner hand...
                            Solche Events bindet man beim Schreiben halbwegs zeitgemäßer Javascripte ja auch nicht mehr als HTML-Attribute im Body-Tag ein, sondern bindet sie dynamisch ans window-Objekt.
                            I don't believe in rebirth. Actually, I never did in my whole lives.

                            Kommentar


                            • #15
                              Original geschrieben von onemorenerd
                              Und ich als Anwender möchte bitte selbst entscheiden, ob und wann ich ein Geschäft abschließe. Wenn jede Eingabe sofort in deiner Datenbank landet, fühle ich mich belauscht. Ich stehe auf dem Standpunkt, dass meine Daten mir gehören, bis ich sie irgendwohin abschicke, nicht bis ich sie eingebe.
                              wie TobiaZ richtig sagt, entscheidest DU in meiner app, wann deine daten gespeichert oder verschickt werden. denn ich rede hier tatsächlich nur davon, die session als zwischenspeicher zu nutzen. hauste ab, sind die session-daten wech - so wie es soll. auch ich halte viel von datenschutz

                              Original geschrieben von onemorenerd
                              Nein, denn genau so verhalten sich die meisten Browser. Ich kann z.B. dieses Antwort-Formular hier ausfüllen, mittendrin woanders hinsurfen, den Back-Button klicken und das Formular ist immernoch ausgefüllt. Die Browser-Hersteller haben diese Use Cases also erkannt. Du mußt mich nicht beschnüffeln!
                              wiedermal gebe ich dir recht... ... ... wenn wir von dir oder mir reden. wir können aber nicht von uns auf alle anderen nutzer und zielgruppen schließen. das navigieren über zurück und vor ist keine selbstverständlichkeit. wir arbeiten damit täglich - und da wird man schnell betriebsblind und sieht es als selbstverständlich an. in meinen augen spricht da nichts gegen, die usability auch aufgabe der seite sein zu lassen und den browser in den erkannten use cases zu unterstützen.


                              @Tobiaz : was meinst du mit "Allerdings wird es an einer sauberen Umsetzung scheitern."? und zum thema cookies. weiß jemand wie verbreitet mittlerweile aktivierte bzw. deaktivierte cookies sind? es ist eine gewissensfrage. mit ajax-scripten schließe ich derzeit ja schon js-hasser aus. will nicht noch eine potentielle ausschlussgruppe haben - auch wenn es auf kosten der performance ist (was mich natürlich auch ein wenig stört).

                              @wahsaga :
                              danke, guter einwand. damit wäre ich von der gestaltung des restlichen templates unabhängig...
                              Zuletzt geändert von arkos; 07.08.2007, 10:37.
                              **********
                              arkos
                              **********

                              Kommentar

                              Lädt...
                              X