Nach submit() vorherige Position im Dokument anspringen

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

  • Nach submit() vorherige Position im Dokument anspringen

    Hi

    Ich habe ein ewig langes Formular mit mehreren "onpropertychange='this.form.submit();'" (damit entsprechend weitere Elemente je nach Auswahl angezeigt oder verborgen werden).

    Da das Formular recht lang ist, ist es nervig dass nach einem "leeren" submit (siehe oben) die Seite wieder immer ganz oben anfängt und der Benutzer wieder selbst zu der Stelle scrollen, wo er das Event ausgelöst hat. Jetzt suche ich nach einer Möglichkeit, dass das Script wieder automatisch an die letzte Stelle scrollt.

    Mit Ankern geht das ja nicht wirklich, da man damit ja nur feste Sprungpunkte defineren kann (ich wüßte eh nicht, wie man einen Anker mit dem oben gennaten Handler übergibt). Geht das irgendwie mit Javascript? Also, Position abfragen, merken und nach submit wieder an die gleiche Position springen...

    Danke und viele Grüße

    Frank

  • #2
    javascript > hash
    oder du setzt den focus auf das entsprechende formular-element

    (=> selfhtml)
    Kissolino.com

    Kommentar


    • #3
      Danke...hab das aber jetzt mit "window.scrollTo(x,y)" gelöst

      Kommentar


      • #4
        o, das klingt interessant, kanst du bitte mal posten wie du das gemacht hast, hab nen ähnliches problem!
        nein?

        Kommentar


        • #5
          Hi

          Damit das funzt, hab ich ein paar Programmzeilen, die etwas verteilt sind:

          Also, zuerst die Javafunktionen:
          PHP-Code:
          function scrollto(x,y) {
              
          window.scrollTo(x,y);
          }

          function 
          submitscroll(formname) {
              
          document.all[formname].scroll.value document.body.scrollTop;
              
          document.all[formname].submit();

          Dann der PHP-Code (der erweitert meine bestehende PHP-Form-Klasse):
          PHP-Code:
          function scrollHandler() {
             global 
          $onload;
             if (
          $_POST['scroll']) {
                
          $onload "onLoad='scrollto(0,$_POST['scroll'])'";
             }
             
          $this->addHiddenfield('scroll');

          addHiddenfield fügt ein verstecktes Textfeld 'scroll' im Formular hinzu. $onload wird in den body-tag eingefügt.

          und dann noch in jedes Formularelement, dass die Aktion auslösen soll:
          PHP-Code:
          onpropertychange='submitscroll("formname");' 
          formname ist dabei der name des Formulars

          Grüße

          Frank

          edit:

          Ach ja, das geht im Moment nur im IE...für den Netscape gibts einen anderen Befehl (siehe selfhtml). Werd ich noch einbauen...
          Zuletzt geändert von LDSign; 01.05.2003, 12:33.

          Kommentar

          Lädt...
          X