Ruedi Ammann: getElementById().innerHTML=

Umfangreiche Datensätze gebe ich mit 30 Zeilen pro Seite mit einer bisher gut funktionierenden Seitennavigation aus. Mit Klick auf eine Seiten-Nr gebe ich diese per JS an ein Hidden-Element und mit submit() mit dem ganzen Formular (Filterkriterien, etc) an die aufgerufene Seite weiter.

Da nach W3C-Standard ein Formular keinen Namen mehr hat, gehen solche Manipulationen (z.B. document.Formname.Elementname.value= ) nicht mehr.

Ich habe es nun mit getElementById() eingesetzt; im nächsten Formular ist das Form-Element aber leer oder enthält immer noch den Initialwert. Ich möchte es nicht mit ...a href=... machen, da sonst die schon gemachten Filterkriterien verloren gehen und diese immer mitgeben, ist etwas mühsam.

Hat jemand eine passable Lösung?

Hier noch mein Code-Schnippsel:

"<a href='javascript: document.getElementById(\"aS2\").innerHTML=".$maxSeiten.";document.getElementById(\"myForm\").submit();'>&nbsp;&gt;&gt;&nbsp;</a>"
  1. hi,

    Ich habe es nun mit getElementById() eingesetzt; im nächsten Formular ist das Form-Element aber leer oder enthält immer noch den Initialwert. Ich möchte es nicht mit ...a href=... machen, da sonst die schon gemachten Filterkriterien verloren gehen und diese immer mitgeben, ist etwas mühsam.

    Halte die Filterkriterien//Parameter in einem Cookie, managed über ein extra Form nur für den Filer. So kannst Du das von der Navigation komplett trennen.

    Wieviele Records hast Du denn? Wenns nur ein paar Tausend sind, hol die ganze Tabelle per Ajax in ein <table diplay:none> und baue eine quasi-Navigation welche von der Tabelle nur eine bestimmte Anzahl Zeilen sichtbar macht. Sortieren per jQuery.

    dag

    1. hi,

      Wieviele Records hast Du denn? Wenns nur ein paar Tausend sind, hol die ganze Tabelle per Ajax

      Damit Ihr mal ein Gefühl für solche Dinge bekommt: Ein asynchrones Download einer Tabelle mit 20tausend Einträgen, Datenmenge ca 1MB, plus Wiederherstellung der Daten in einem JS-Objekt dauert ungefär eine Sekunde.

      Für das restliche ToDo gibt es jQuery.tablesorter() und jQuery.tablesorterPager().

      Wenn dazu noch weitere Kommunikationen mit dem Server asynchron abgewickelt werden (insert/update), bleiben hinsichtlich Benutzerfreundlichkeit kaum noch Wünsche offen.

      Schöner Sonntag, DAG

      1. hi,

        Für das restliche ToDo gibt es jQuery.tablesorter() und jQuery.tablesorterPager().

        iwie erinnere ich mich hier an heisse diskussionen um den einsatz von js für den inhaltlichen seitenaufbau, das war so furchtbar wie tabellenlayout oder die mischung von content und style. aber gut, jQuery scheint ja kein js mehr zu sein :p
        wie auch immer, ich bevorzuge nach wie vor lösungen, die weitgehends ohne js auskommen, in welcher form es auch immer daher kommt.

        bye trunx

        --
        Die Standard-Antwort: "Bitte benutze die Forum-Suche!" macht die Forum-Suche kaputt, weil die Suche dann nämlich genau vor allem diese dämliche Standard-Antwort, also Müll liefert. Sinnvoller ist stattdessen folgende Standard-Antwort: "Dieses Thema wurde schon vielfach im Forum besprochen, siehe z.B. <a>hier</a> oder <a>da</a> oder benutze die Forum-Suche z.B. mit den Stichworten 'Stichwort1 Stichwort2'." Danke.
        1. Hallo

          Für das restliche ToDo gibt es jQuery.tablesorter() und jQuery.tablesorterPager().

          iwie erinnere ich mich hier an heisse diskussionen um den einsatz von js für den inhaltlichen seitenaufbau, das war so furchtbar wie tabellenlayout oder die mischung von content und style.

          Ja, früher™ war das eine grundsätzliche Frage, heute ist sie dann grundsätzlich, wenn es (für eine öffentliche Webseite) keinen JS-losen Fallback gibt. Webapplikationen oder Intranetseiten sind da mMn außen vor.

          wie auch immer, ich bevorzuge nach wie vor lösungen, die weitgehends ohne js auskommen, in welcher form es auch immer daher kommt.

          Solange es die von dir favorisierte JS-lose Lösung gibt, kannst du dieser als Ergänzung sinnvollen JS-Einsatz beistellen und an einigen Stellen auch überstülpen.

          Tschö, Auge

          --
          Es schimmerte ein Licht am Ende des Tunnels und es stammte von einem Flammenwerfer.
          Terry Pratchett, „Gevatter Tod“
        2. hi,

          wie auch immer, ich bevorzuge nach wie vor lösungen, die weitgehends ohne js auskommen, in welcher form es auch immer daher kommt.

          ... bis mir klar wurde, dass ich das überhaupt gar nicht entscheide sondern der Kunde ;)

          1. hi,

            wie auch immer, ich bevorzuge nach wie vor lösungen, die weitgehends ohne js auskommen, in welcher form es auch immer daher kommt.

            ... bis mir klar wurde, dass ich das überhaupt gar nicht entscheide sondern der Kunde ;)

            dein kunde ist also selbst programmierer und lässt dir da keinerlei spielraum? soso o.O
            und dein kunde ist nicht so an usern interessiert? mich als nutzer nerven seiten, die ewig für den seitenaufbau brauchen, weil man erst noch umgeleitet wird, mb sinnloser content geladen wird, der mich später vllt auch noch interessieren könnte oder meine eingaben löscht, weil die eingabenvorschlagsfunktion erst so spät angefahren werden konnte. mach wie du denkst, aber schiebs nicht auf andere...

            --
            Die Standard-Antwort: "Bitte benutze die Forum-Suche!" macht die Forum-Suche kaputt, weil die Suche dann nämlich genau vor allem diese dämliche Standard-Antwort, also Müll liefert. Sinnvoller ist stattdessen folgende Standard-Antwort: "Dieses Thema wurde schon vielfach im Forum besprochen, siehe z.B. <a>hier</a> oder <a>da</a> oder benutze die Forum-Suche z.B. mit den Stichworten 'Stichwort1 Stichwort2'." Danke.
          2. Hallo

            wie auch immer, ich bevorzuge nach wie vor lösungen, die weitgehends ohne js auskommen, in welcher form es auch immer daher kommt.

            ... bis mir klar wurde, dass ich das überhaupt gar nicht entscheide sondern der Kunde ;)

            Wenn der Kunde das entscheiden könnte, bräuchte er dich nicht.

            Tschö, Auge

            --
            Es schimmerte ein Licht am Ende des Tunnels und es stammte von einem Flammenwerfer.
            Terry Pratchett, „Gevatter Tod“
            1. Hallo

              wie auch immer, ich bevorzuge nach wie vor lösungen, die weitgehends ohne js auskommen, in welcher form es auch immer daher kommt.

              ... bis mir klar wurde, dass ich das überhaupt gar nicht entscheide sondern der Kunde ;)

              Wenn der Kunde das entscheiden könnte, bräuchte er dich nicht.

              Genauso ist es. Ein freundlicher Kunde gibt mir noch Bescheid, kurz bevor er den Auftraggeber wechselt. Und ein ganz freundlicher Kunde fragt mich höflich, ob ich die Anwendung eventuell so benutzerfreundlich machen könnte wie die Anderen ;)

              1. Hallo

                wie auch immer, ich bevorzuge nach wie vor lösungen, die weitgehends ohne js auskommen, in welcher form es auch immer daher kommt.

                ... bis mir klar wurde, dass ich das überhaupt gar nicht entscheide sondern der Kunde ;)

                Wenn der Kunde das entscheiden könnte, bräuchte er dich nicht.

                Genauso ist es. Ein freundlicher Kunde gibt mir noch Bescheid, kurz bevor er den Auftraggeber wechselt. Und ein ganz freundlicher Kunde fragt mich höflich, ob ich die Anwendung eventuell so benutzerfreundlich machen könnte wie die Anderen ;)

                Du konstruierst hier einen nicht existenten Fall.

                Der Kunde will ein Produkt. Und er will es bestimmt so haben, wie er es woanders schon gesehen hat. Welche Techniken benutzt werden, um dahin zu kommen, ist ihm mit an Sicherheit grenzender Wahrscheinlichkeit schnurzpiepegal. Er hat davon mit an Sicherheit grenzender Wahrscheinlichkeit absolut keinen Schimmer. Hätte er sie, bräuchte er den Auftrag nicht an jemand anderen herauszugeben sondern könnte das allein erledigen.

                Du bist als Auftragnehmer derjenige, der über die zu verwendenden Techniken entscheidet. Und für Webseiten gilt immer noch, dass sie auch ohne Zusatztechniken wie JS zu funktionieren haben. Werden diese zusätzlich eingesetzt, um bestimmte Effekte zu erzielen und/oder die Benutzbarkeit zu verbessern, ist das gut und schön und richtig. Das ist aber nicht der Umkehrschluss zu „lösungen, die weitgehends ohne js auskommen“, sondern dessen Ergänzung.

                Tschö, Auge

                --
                Es schimmerte ein Licht am Ende des Tunnels und es stammte von einem Flammenwerfer.
                Terry Pratchett, „Gevatter Tod“
                1. Hallo Du bist als Auftragnehmer derjenige, der über die zu verwendenden Techniken entscheidet. Und für Webseiten gilt immer noch, dass sie auch ohne Zusatztechniken wie JS zu funktionieren haben.

                  Gibt es irgendwo auf dieser Welt ein Konsortium was eine solche Festlegung irgendwann einmal verbindlich für alle Webentwickler getroffen haben soll? Wohl kaum. Und außerdem, Du sagst ja selbst, der Kunde hat keine Ahnung von Technik. Also weiß er auch nicht, ob da JavaScript oder Java oder Lava oder die Mainzelmännchen dahinterstecken. Dem Kunden ist das völlig Wurscht.

                  Interessant für Dich wird es evntl, wenn ein Kunde so ganz beiläufig fragt, warum Deine Anwendung zum Sortieren nach einer Spalte die ganze Tabelle neu vom Server holen muss, wo doch eine ganz ähnliche Anwendung von der Konkurrenz die Tabelle gleich im Browser sortiert. Ganz so doof sind die Kunden nämlich auch nicht.

                  Vielleicht hast Du ja einen Weg gefunden, Anwendungen, die ohne JS bei gleicher Benutzerfreundlichkeit wie Anwendungen mit JS funktionieren, in derselben Zeit kostendeckend entwickelt werden können und konkurrenzfähig sind. Möglicherweise gibt es ja auch eine richtige Nische für solche Anwendungen und Kunden wo das explizit wünschen. Da muss ein Kunde jedenfalls schon ne ganze Menge Verständnis für die Technik aufbringen ;)

                  Dag

  2. Hallo

    Nur falls es dich interessiert:

    Es gibt eine HTML-Collection der form-Elemente des Dokuments.

    Damit kannst du die form-Elemente auch über den Wert ihres name-Attributes ansprechen und musst nicht mit getElementById( ) erst das ganze Dokument danach durchsuchen:

    
    
    var myForm = document.forms.myFormName;
    
    var myValue = document.forms['myFormName'].elements['myElementName'].value;
    
    

    Gruß,

    HAL

    1. Danke für den Hinweis; hast Du berücksichtigt, dass nach W3C-Standard kein Name-Attribut verwendet werden darf?

      1. Hallo

        Danke für den Hinweis; hast Du berücksichtigt, dass nach W3C-Standard kein Name-Attribut verwendet werden darf?

        Nach welchem Standard? Nach diesem?

        „The form element [...] Content attributes: name - Name of form to use in the document.forms API“

        Gruß,

        HAL

        1. Hallo

          Danke für den Hinweis; hast Du berücksichtigt, dass nach W3C-Standard kein Name-Attribut verwendet werden darf?

          Nach welchem Standard? Nach diesem?

          „The form element [...] Content attributes: name - Name of form to use in the document.forms API“

          Gruß,

          HAL

          Danke Hal, konkret habe ich meine Seiten mit validaor.w3.org checken lassen und dort wird bemängelt, dass der Tag form kein Name haben darf. Gruss Ruedi

          1. Hallo

            … hast Du berücksichtigt, dass nach W3C-Standard kein Name-Attribut verwendet werden darf?

            „The form element [...] Content attributes: name - Name of form to use in the document.forms API“

            konkret habe ich meine Seiten mit validaor.w3.org checken lassen und dort wird bemängelt, dass der Tag form kein Name haben darf.

            Bitte zeige die Ergebnisseite, auf der der Einsatz des Attributs bemängelt wird.

            Tschö, Auge

            --
            Es schimmerte ein Licht am Ende des Tunnels und es stammte von einem Flammenwerfer.
            Terry Pratchett, „Gevatter Tod“
            1. Hallo

              … hast Du berücksichtigt, dass nach W3C-Standard kein Name-Attribut verwendet werden darf?

              „The form element [...] Content attributes: name - Name of form to use in the document.forms API“

              konkret habe ich meine Seiten mit validaor.w3.org checken lassen und dort wird bemängelt, dass der Tag form kein Name haben darf.

              Bitte zeige die Ergebnisseite, auf der der Einsatz des Attributs bemängelt wird.

              Tschö, Auge

              Ich kann die Bemerkung des validatorsW3C nicht mehr zeigen, weil ich inzwischen ein <FORM> ohne Attribut NAME eingebaut habe. Danke ohnehin!

              --
              > Es schimmerte ein Licht am Ende des Tunnels und es stammte von einem Flammenwerfer.
              > Terry Pratchett, „Gevatter Tod“
              1. Hallo

                … hast Du berücksichtigt, dass nach W3C-Standard kein Name-Attribut verwendet werden darf?

                „The form element [...] Content attributes: name - Name of form to use in the document.forms API“

                konkret habe ich meine Seiten mit validaor.w3.org checken lassen und dort wird bemängelt, dass der Tag form kein Name haben darf.

                Bitte zeige die Ergebnisseite, auf der der Einsatz des Attributs bemängelt wird.

                Ich kann die Bemerkung des validatorsW3C nicht mehr zeigen, weil ich inzwischen ein <FORM> ohne Attribut NAME eingebaut habe. Danke ohnehin!

                Dann läuft da irgendwas schief. HAL hat mit dem Verweis auf den Standard gezeigt, dass das Attribut erlaubt ist. Wenn der Validator dir jedoch sagt, es wäre verboten, stimmt etwas nicht. Entweder der Validator, den du benutzt, ist kaputt oder du misinterpretierst eine seiner Ansagen. Deshalb fragte ich. Eine Klarstellung ist, auch für die Zukunft, sehr wünschenswert.

                Tschö, Auge

                --
                Es schimmerte ein Licht am Ende des Tunnels und es stammte von einem Flammenwerfer.
                Terry Pratchett, „Gevatter Tod“
  3. du kannst auch mehrere submit-buttons nutzen und übergibst mit ihnen ohne js direkt deinen wert.

    1. du kannst auch mehrere submit-buttons nutzen und übergibst mit ihnen ohne js direkt deinen wert.

      Vielen Dank für Deinen Tipp , werde damit noch etwas experimentieren (style).