Artikelsortierung in HTML Dokument


Sempervivum

Erfahrenes Mitglied
Das war relativ einfach:
Die Darsteller, die auf der Seite schon vorhanden sind, in ein div kapseln und vor diesem div ein weiteres, leeres für die Suchergebnisse anlegen, so:
Code:
                <div id="figures-nat"></div>
                <div id="figures-alfa">
                    <div class="figure rus">
                        <p>
<!-- Hier die vorhandenen Darsteller für den betr. Buchstaben -->
                </div>
Und das jQuery so ändern:
Code:
        var pages = [
            "darsteller-to1.html", "darsteller-to2.html"
        ];
        var alledarsteller = $("#figures-nat").css("display", "none");
        pages.forEach(function (item, idx) {
            $.ajax(item, {
                success: function (data) {
                    var darsteller = $("<div>" + data + "</div>").find(".figure").css("display", "none");
                    alledarsteller.append(darsteller);
                    //alledarsteller.html(alledarsteller.html() + data);
                }
            });
        });
        var sel = document.getElementById("selectnat");
        sel.addEventListener("change", function () {
            var nat = sel.options[sel.selectedIndex].value;
            $(".figure").css("display", "none");
            $("#figures-nat .figure." + nat).css("display", "block");
            alledarsteller.css("display", "block")
        });
Das mit "Alle" machen wir dann, wenn dies soweit funktioniert.
 

Sempervivum

Erfahrenes Mitglied
Na super. Fehlt noch das "Alle". Sollen dann wirklich alle Darsteller angezeigt werden, von allen Seiten und von A-Z oder nur die Ansicht vom Anfang mit den Darstellern des betr. Buchstabens wieder hergestellt werden?
 

mikemichel

Mitglied
Wenn Alle, dann so wie es vorher war, also sprich max. 25 Darsteller auf einer Seite. Wenn man wirklich alle auf eine Seite packen würde, da wäre ja die html Seite ewig lang und ganz zu Schweigen von der Ladezeizt.
 

Sempervivum

Erfahrenes Mitglied
Ja, so macht es Sinn. Ist eine Kleinigkeit:
Code:
        var pages = [
            "darsteller-to1.html", "darsteller-to2.html"
        ];
        var alledarsteller = $("#figures-nat").css("display", "none");
        pages.forEach(function (item, idx) {
            $.ajax(item, {
                success: function (data) {
                    var darsteller = $("<div>" + data + "</div>").find(".figure").css("display", "none");
                    alledarsteller.append(darsteller);
                }
            });
        });
        var sel = document.getElementById("selectnat");
        sel.addEventListener("change", function () {
            var nat = sel.options[sel.selectedIndex].value;
            $(".figure").css("display", "none");
            if (nat == "alle") {
                $("#figures-alfa .figure").css("display", "block");
            } else {
                $("#figures-nat .figure." + nat).css("display", "block");
                alledarsteller.css("display", "block")
            }
        });
 

basti1012

Erfahrenes Mitglied
Aber hat auch nachteile jetzt.Wenn ich deutsch anklicke werden 25 stück angezeigt .alles gut .Wenn ich aber mehr deutsche sehen will geht das ja nicht ,dann muß ich die ja selber suchen .Weil auf seite 2 klicken geht ja nicht da ist ja alles wieder durcheinander. Vieleicht könnte man das ja noch ändern?
 

Sempervivum

Erfahrenes Mitglied
Kann ich nicht nachvollziehen: Auf meinen Testseiten werden bei Deutschland 22 und bei USA 42 angezeigt. Bei Deutschland ist das genau das, was auch mein Editor zählt.
 

mikemichel

Mitglied
Guten morgen. Also es funktioniert, einwandfrei. Ich mache das jetzt mal über meine ganzen 22 Seiten, wird etwas dauern. Melde mich dann nochmal. Jetzt schon einmal Vieeeelen Dank.
 

mikemichel

Mitglied
Noch was. Ist es sinnvoll diesen Code:
Code:
<script src="https://code.jquery.com/jquery-latest.js"></script>
in meiner html Seite zu belassen?
 

Sempervivum

Erfahrenes Mitglied
Weiß nicht genau. Bei mir waren die CDNs immer sehr zuverlässig, aber ich verwende sie hauptsächlich in Testseiten, wenn es mal schnell gehen soll. Auf einer Produktivseite würde ich es lieber selbst hosten.
 

mikemichel

Mitglied
Noch eine frage, bevor ich anfange. Keine Ahnung ob sich das in Quere kommt. Ist es schlimm wenn ich jetzt in jede Seite das einbaue:
Code:
<script src="https://code.jquery.com/jquery-latest.js"></script>
<div id=""></div>
<p>Schauspieler nach Länder sortieren:
  <select id="selectnat">
    <option value="alle" selected>Alle</option>
    <option value="us">Amerika / USA</option>
    <option value="br">Brasilien / Brasil</option>
    <option value="de">Deutschland / Germany</option>
    <option value="h">Ungarn / Hungary</option>
    <option value="rus">Russland / Russia</option>
    <option value="ch">Schweiz / Swizerland</option>
  </select>
</p>
Denn viele Gäste kommen ja nicht direkt auf die Startseite der Darsteller sondern zum Beispiel auf Seite 13. Wenn jetzt der oben genannte Code auf Seite 13 nicht drin wäre, wüssten diese garnicht dass man das ganze ja sortieren kann, so müsste der Gast ja erst auf die Startseite der Darsteller.
Verstanden?
 

Sempervivum

Erfahrenes Mitglied
Stimme zu, es ist sicher sinvoll, wenn man die Sortierfunktion auf allen Seiten bereit stellt. Wenn es auf der ersten Seite funktioniert, sollte es auf allen anderen auch gehen.
 

mikemichel

Mitglied
Habe es geschafft. Schau mal unter http://bit.ly/2HY9tTB nach. Klappt echt wunderbar, habe es in jeder Seite eingebaut und funktioniert auch super.
Jetzt klickt mal aus das Land USA / Amerika von denen habe ich am meisten.
Wie ihr sehen könnt, ist diese Liste extrem lang.
Kann man da was machen?

Danke
 

Sempervivum

Erfahrenes Mitglied
Ein gängiges Verfahren, das dir sicher auch schon begegnet ist, ist, nur einen Abschnitt der Einträge anzuzeigen und am Ende einen Button "mehr ...". Drückt man drauf, wird ein neuer Abschnitt sichtbar gemacht.
 

mikemichel

Mitglied
Ja, das ist auch eine Lösung, so in der Art wie bei Twitter, scrollt man ganz runter, dann lädt es automatisch mehr.
 

mikemichel

Mitglied
Also ich glaube so wie im Post 35, der wäre gut. Mir geht es ja auch um Google, wird dann zum Beispiel bei den amerikanischen Darsteller die ersten 25 Stars auf eine Seite geladen, dann kommt eine zweite Seite mit weiteren 25 amerikanischen Stars. Da fängt es dann wieder an mit der kanonischen Url usw.
Also wenn es so klappt wie du gemeint hast, dann wäre es super. Die Daten sind ja dann nicht sofort geladen, erst wenn man auf mehr klickt, oder?
Es geht mir halt auch um die Größe, vor allem am Anfang, also wenn man das erste mal drauf klickt, später ist es es egal, was die Ladezeit angeht.
 

Sempervivum

Erfahrenes Mitglied
Also ich glaube so wie im Post 35, der wäre gut.Also ich glaube so wie im Post 35, der wäre gut.
Kein Problem, ist machbar.
Die Daten sind ja dann nicht sofort geladen, erst wenn man auf mehr klickt, oder?
Leider doch, bei dem aktuellen Verfahren werden ja alle Seiten am Anfang geladen und dann erst gefiltert. Will man das vermeiden, muss man PHP einbeziehen und auf dem Server filtern. Wäre auch kein großes Problem.
 

basti1012

Erfahrenes Mitglied
Kann ich nicht nachvollziehen: Auf meinen Testseiten werden bei Deutschland 22 und bei USA 42 angezeigt. Bei Deutschland ist das genau das, was auch mein Editor zählt.

Deutsche habe ich elf und usa 21 .Komischerweisse genau die Hälfte.Jetzt wo die suche auf jeder Seite ist klappt die suche auch ,aber das ergebniss stimmt nicht .wenn nur 1-3 Frauen angezeigt werden ist die verlinkung 1,2,3,4,5,6,7, usw neben den frauen und nicht mehr unten drunter