Problem mit einem Formular zur URL-Generierung

  • Wie man sicher schon an meiner Frage merken wird, bin ich ein "blutiger Laie" was Javascript/jQuery angeht. Aber vielleicht ist trotzdem jemand so nett, mir einen Tipp zu geben, wie ich das folgende Problem lösen kann:


    Ich entwickle unter Joomla 3.9.16 ein Onlinebuch mit hunderten von Seiten, für das ich ein Formular benötige, mit dem man schnell die gewünschte Seite des Buches anspringen kann. Das Buch wird in der Joomla-Site mit der Navigation des Blog-Layouts angezeigt und eine typische URL (zum Beispiel die Buchseite 320) sieht wie folgt aus:


    http://<my-domain.de>/book -1?start=319


    Statt der Buch-Seitenzahl 320 wird also in der URL die Ziffer 319 angezeigt. Das liegt daran, dass die Pagination mit Ziffer 0 beginnt, was auch im Core Code sicher nicht verändert werden sollte.


    Nach langem Herumprobieren habe ich die folgende Formular-Lösung gefunden, die ich in ein Modul integriert habe und zu der ich noch einen Tipp benötige:


    <form method="get" action="book-1">

    <input name="start" type="number" value="page">

    <submit name="do" value="start">

    </submit></form>


    Das Modul mit dem Formular wird auf den Buchseiten agezeigt. Wenn der User in diesem Formular die Ziffer 211 eingibt, um zur Buchseite 211 zu gelangen, dann wird folgende URL erzeugt:


    http://<my-domain.de>/book -1?start=211


    Angezeigt wird aber statt der gewünschten Buchseite 211 die Buchseite 212 und das ist natürlich aus Sicht des Users die falsche Buchseite. Was ich also brauche, ist eine Funktion, die die eingegebene Zahl um den Wert "-1" verringert.


    Wenn der User also 51 eingibt, dann sollte folgende URL erzeugt werden:


    http://<my-domain.de>/book -1?start=50


    Ich suche nun schon seit zwei Tagen vergeblich nach einer Lösung und hoffe, dass einer der Experten hier im Form mir einen Tipp geben kann, wie ich das Formular so verändern muss, dass die eingegebene Zahl in der durch das Formular genierten URL um den Wert "-1" reduziert wird.


    Ich bin natürlich auch für jede andere Lösung des Problems dankbar.


    Danke!

    Hajosch

  • Zum Debuggen kannst das

    Code
    type="hidden"

    in

    Code
    type="text"

    ändern. Dann siehst, was im Feld passiert, wenn du das number-Feld änderst.


    Du musst natürlich aufpassen, dass die ids "start" und "startinput" auf der Seite sonst nirgends vorkommen.

  • Diese Lösung funktioniert auf Anhieb! Hurra, Hurraa, Hurraaahhh You made my day! Herzlichen Dank aus Potsdam nach Kreuzberg.

  • Das Problem / Thema kann als erledigt markiert werden. Und wenn ich jetzt noch wüsste, wie ich Re:Later einen Like zukommen lassen kann, dann würde ich einen wirklich fetten Like für Re:Later raushauen. Ich arbeite mich mal durch die Forumsregeln durch und dann kommt mein Like mit etwas Verspätung.