Pagination mit Drop-Down-Liste - Druckversion +- MyBB.de Forum (https://www.mybb.de/forum) +-- Forum: Archiv (https://www.mybb.de/forum/forum-57.html) +--- Forum: MyBB 1.4.x (https://www.mybb.de/forum/forum-51.html) +---- Forum: Allgemeiner Support (https://www.mybb.de/forum/forum-52.html) +---- Thema: Pagination mit Drop-Down-Liste (/thread-12246.html) |
RE: Pagination mit Drop-Down-Liste - Jockl - 03.02.2009 Also mir lässt das Thema ja keine Ruhe. Bin ständig am Herumprobieren. Mittlerweile bin ich soweit, dass ich die tid beim Klick des Formular-Buttons mit auf den Weg zur Javascript-Funktion schicken. Das klappt ganz gut und mit Code: alert ("showthread.php?tid=" + tid_nr + "&page="+page); Das große Problem besteht aber weiterhin, die URL im Browser-Fenster auch zu öffnen. Mit Code: window.location.href = "showthread.php?tid=" + tid_nr + "&page=" + page; Rufe ich aber Code: open("showthread.php?tid=" + tid_nr + "&page=" + page); Das ganze hat mittlerweile ja nur noch bedingt mit der Forensoftware zu tun (der Thread kann von mir aus auch verschoben werden), aber wenn hier jemand einen Tipp hat, wäre ich (fast ) unendlich dankbar. Bei G**gle habe ich schon stundenlang gesucht, konnte aber nichts finden was meine Frage beantwortet. Achja, die js-Datei habe ich mittlerweile ausgelagert und rufe sie im headerinclude auf. RE: Pagination mit Drop-Down-Liste - Jockl - 03.02.2009 Geschafft! Nun klappt es! *hühüpf* RE: Pagination mit Drop-Down-Liste - Michael - 03.02.2009 So gehts auch (ohne Javascript): Code: <form name="jumptopage" action="showthread.php" method="get"> RE: Pagination mit Drop-Down-Liste - Jockl - 03.02.2009 OK, es geht also auch einfacher.... Dann buche ich das mal als "Erweiterung des Erfahrungsschatzes in Bezug auf JS" ab. Ich hatte das nun so gelöst: Im Template headerinclude wird folgende Funktion eingesetzt: Code: function gotopage(tid_nummer) { Das Template mutlipage sieht dann so aus: Code: <div class="pagination"> Code: .GoToPage { Die Thread-ID wird wie weiter oben in Deinem Beitrag beschrieben in der inc/functions.php als globale Variable übergeben. RE: Pagination mit Drop-Down-Liste - Jockl - 23.02.2009 So, nun habe ich in den letzten Wochen diese Funktion ziemlich umfangreich gestaltet (hat mit den o.a. Zeilen nicht mehr viel zu tun) und sie funktioniert mittlerweile auf fast allen Seiten im Forum, bei denen die multipage-Funktion erscheint. Einer Veröffentlichung würde also im Grunde nichts entgegen stehen. Wenn ich da nicht doch noch auf ein Problem gestoßen wäre, bei dem ich einfach nicht weiter komme. Die Variable {$multipage} wird ja auf den entsprechenden Seiten 2 mal dargestellt. Einmal oberhalb und einmal unterhalb z.B. bei den Forenlisten oder auch bei den Beiträgen. Das multipage-Template habe ich nun mit einer entsprechenden Javascript-Funktion versehen, die per ID eine div-Box zur Seitenauswahl erscheinen lässt. Da es das Template aber nur 1-mal gibt, wird bzw. kann ich auch nur eine ID vergeben. Eine ID für zwei Paginationsdarstellungen! Problem: die Funktion wird deshalb nur bei einer der beiden Paginationen ausgeführt. Ich hätte es aber ganz gerne, dass die Funktion oben und unten funktioniert. Vermutlich habe ich mich jetzt ziemlich wirr ausgedrückt, aber so in etwa sieht es auch gerade in meinem Kopf aus. Ich komme einfach nicht dahinter, wie ich das Problem umgehen kann und hoffe, dass mir jemand von Euch einen Tipp geben kann. Nachtrag: Es wäre bestimmt möglich, beim Laden der Seite mit "window.onload" beide divs einzulesen und ihnen anschließend jeweils eine neue ID zu vergeben? Das Problem ist dann aber, dass der Übergabeparameter der "onklick"-JS-Funktion auch umbenannt werden müsste. RE: Pagination mit Drop-Down-Liste - Michael - 24.02.2009 Muss es denn eine ID sein? Sonst kannst du das class-Attribut verwenden. RE: Pagination mit Drop-Down-Liste - Jockl - 24.02.2009 Also mit JS kann man im Prinzip ja nur IDs ansprechen. Allerdings haben die beiden {$multipage}-Anzeigen aufgrund der Templateanwendung ja ein und die selbe ID. Meinst Du mit dem "class-Attribut" eine CSS-Klasse? Da wüsste ich jetzt irgendwie nicht, wie Du das meinst..... Habe mittlerweile die sog. "getElementsbyClassName"-Funktion gefunden. Mit der kann man die Anzahl von Elementen auslesen, die zu einer Klasse gehören. Das wären in dem Fall ja 2. Jetzt muss ich "nur" noch herausfinden, wie ich die gefundenen Elemente separat ansprechen kann....... RE: Pagination mit Drop-Down-Liste - Michael - 25.02.2009 (24.02.2009, 22:13)Jockl schrieb: Also mit JS kann man im Prinzip ja nur IDs ansprechen. Allerdings haben die beiden {$multipage}-Anzeigen aufgrund der Templateanwendung ja ein und die selbe ID.Das stimmt so nicht ganz: http://de.selfhtml.org/javascript/objekte/all.htm#class_name RE: Pagination mit Drop-Down-Liste - Jockl - 25.02.2009 es hat keinen Sinn Ich fürchte, da fehlt's bei mir "vom Boa weg". Ich sitze seit dem WE mehr oder weniger ununterbrochen an diesem Teil, kenne "fast alle JS-Seiten, die es im www gibt", schaffe aber diese Hürde einfach nicht. Ich gebe jetzt erst mal auf. Muss mich tagsüber auch mal wieder auf die Arbeit konzentrieren können..... Danke trotzdem! RE: Pagination mit Drop-Down-Liste - Jockl - 27.02.2009 (25.02.2009, 23:31)Jockl schrieb: Ich gebe jetzt erst mal auf....ist schon wieder Schnee von (Vor)gestern; ich möchte das einfach schaffen. Ich bin mittlerweile zu der Überzeugung gelangt, dass ich die Funktion, so wie ich mir das vorstelle, nicht im multipage-Template unterbekommen kann. Statt dessen müsste ich den HTML-Code in den entsprechenden Templates setzen, die {$multipage} enthalten. Für die richtige Funktionsweise benötige ich aber die Variable $pages, die quasi als "Abfallprodukt" von der multipage-Funktion geliefert wird. Gibt es eine Möglichkeit, die Variable $pages global zur Verfügung zu stellen, damit ich sie verwenden kann? Außerhalb des multipage-Templates scheint es die nicht zu geben. Ich denke, damit könnte ich mir das Leben leichter machen. Alternativ: ich erzeuge innerhalb der multipage-Funktion (/inc/functions.php) eine neue Variable, die auf ein neues Template verweist und damit auch $pages wieder zur Verfügung stellen könnte. Diese Variable würde ich dann in den jeweils in Frage kommenden Templates vor {$multipage} setzen. Ob das funktioniert? |