Seite in gleicher Scroll - Position öffnen, wie vorher angezeigt

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

  • Seite in gleicher Scroll - Position öffnen, wie vorher angezeigt

    Hallo!

    Ich habe auf meiner Seite mehrere Textfelder, die der User mit Text bestücken kann (soll). Die ganze Seite ist also ein Formular. Neben jedem Textfeld ist ein "Absende" Button, mit dem die Inhalte der Textfelder dann abgespeichert werden (In SQL - Datenbank). Die Seite ruft sich dann selbst wieder auf (mit "Action="URL"). Nun ist die Seite aber so lang, dass gescrollt werden kann. Gibt es eine Möglichkeit die Position der Seite (rein Scrolltechnisch) bei Klick auf einen Absende - Button mit zu übertragen, und die Seite dann anschließend in genau der gleichen Position zu öffnen?

    Genauso kann man an anderen stellen einen link auf seite 1 betätigen um auf seite 2 zu kommen. Dort ist dann wieder ein Formular das mit Action="URL_Seite_1" die erste Seite aufruft. Auch da wäre es sehr schön, wenn die Seite dann (rein Scrolltechnisch) die Position erhält, die sie hatte als der link betätigt wurde.

    Überings, ich möchte die Seite Javascript - frei machen, ich meine also eine möglichkeit mit html oder php.

    Mfg,
    Stefan

  • #2
    Ich würde auf Höhe jedes Formularfeldes einen Anker setzen und jedes Feld mittels onfocus den Namen des nebenstehenden Ankers in ein hidden field schreiben lassen.

    Somit kann dein Script, das die Formulardaten in die DB schreibt beim Rücksprung auf die Formularseite den Anker aus dem hidden field an die URL anhängen und der Browser springt ungefähr an die letzte Position.

    Nicht schön, aber selten.

    Kommentar


    • #3
      Erstmal Danke für die Antwort!

      Ist wirklich nicht so schön, aber mit Ankern zu arbeiten ist wohl die einzige möglichkeit ohne javascript.
      Oder hat noch jemand eine andere Idee???

      Mfg,
      Stefan

      Kommentar


      • #4
        Original geschrieben von KleinesOnlein29
        Ist wirklich nicht so schön, aber mit Ankern zu arbeiten ist wohl die einzige möglichkeit ohne javascript.
        Falls du's nicht gemerkt haben solltest: Der Vorschlag enthielt einen Javascript-Bestandteil.
        Oder hat noch jemand eine andere Idee???
        Ganz ohne Javascript - nope.
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          Habe ich schon gemerkt, aber diese Grundidee lässt sich - zumindest in meiner Anwendung - auch ohne JS problemlos realisieren.
          Ich kenne ja den Absende - Button, der angeklickt wurde, und kann daraus dann auf den entsprechenden Anker schliessen.

          Wenn ich für einen Absende - Button ein Bild einsetzte, werden bei der Auswertung ja auch Koordinaten übergeben... lässt sich daraus nicht was machen?

          Absende Button:
          <input type="image" ....>

          Auswertung mit:
          foreach($_POST as $var=>$val) {};

          Mfg,
          Stefan

          Kommentar


          • #6
            Original geschrieben von KleinesOnlein29
            Wenn ich für einen Absende - Button ein Bild einsetzte, werden bei der Auswertung ja auch Koordinaten übergeben... lässt sich daraus nicht was machen?
            Nein.

            (Die Koordinaten sind Bild-relativ - wenn du daraus einen Schluss auf die Position auf der Seite, an der geklickt wurde, ziehen wolltest, müsstest du schon einen Button verwenden, der so groß wie die komplette Seite ist.
            Und selbst wenn du dann diese Position hättest, könntest du sie auch wieder nur mit Javascript verlässlich "anscrollen".)
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              wie du aufnehmen sollst wo du vorher warst keine Ahnung Aber um auf der neuen Seite am richtigen Ort zu starten kannst du es mit Ankern in Form von Div-Feldern versuchen.

              PHP-Code:
              echo "<style>
              div {
                display:none;
                height:1px;
                width:1px;
                position:absolute;
              }
              </style>"
              ;


              for(
              $a=0;$a<$höhe_meiner_Seite-ca_800px;$a++){
              $y $a*10;
              echo 
              "<div style='left:0px;top:".$y."px'><a name='y=".$y."px'></div>";

              Dann startest du die neue seite z.B. mit meineseite.php?...#y=200px

              Kommentar


              • #8
                @jmc: Wie kommst du darauf, dass das ein gültiger Ankername wäre?
                I don't believe in rebirth. Actually, I never did in my whole lives.

                Kommentar


                • #9
                  sry stimmt, daran habe ich nicht gedacht.

                  Kommentar

                  Lädt...
                  X