Beiträge von Sempervivum

    Bei solchen Plugins besser auf die originale Doku bauen und nicht auf Anleitungen dritter. Tue ich das, funktioniert es problemlos:

    Bei dir war das Problem, dass Du die Pfeil-Buttons an der falschen Stelle eingefügt hast:

    Kommt mir fast so vor, als ob ich selber eine Erleuchtung brauche :D Wenn ich das richtig verstehe, hast Du deine Daten in options.test im JSON-Format, die parst Du erfolgreich in die Variable dataJSON. Und jetzt weißt Du nicht, wie Du eine Callback-Funktion nach dem Parsen aktivieren kannst.

    Wenn Du deinen String mit JSON.parse parst, steht das Ergebnis sofort zur Verfügung und Du kannst sofort mit der Verarbeitung beginnen. Da gibt es nichts Asynchrones und daher auch keine Notwendigkeit für $.parseJSON und einen Callback.

    Also einfach so:

    Oder ist options.test gar kein JSON-String sondern eine Javascript-Struktur aus Arrays und Objekten?

    Zitat

    es soll ja aber so sein, dass man auf irgendeines der 20 klickt, dann geht die Swipe-Seite mit genau dem geklickten auf

    Verstehe ich soweit, nur finde ich es in deinem Code nicht wieder. Es müsste dann doch Thumbs geben und wenn man darauf tippt, geht die Swiper-Seite auf, aber in deinem Code finde ich keine Thumbs. Swiper hat eine umfangreiche API und es wäre kein Problem, mit Javascript gleich zu einem bestimmten Bild zu gehen.

    IMO ist Zeile 1 der richtige Ansatz. Wenn das nicht funktioniert, würde ich vermuten, dass die Syntax des JSON fehlerhaft ist.

    Allerdings verstehe ich den Hintergrund nicht ganz: Wenn die Daten aus der DB geholt werden, muss es doch ein PHP-Skript geben, das das tut und Du musst dann das JSON, das mit echo ausgegeben wird, mit Ajax laden? Wenn dem so ist, besteht clientseitig gar kein Unterschied, sowohl das Lesen aus der Datei als auch das Aufrufen des PHP-Skripts liefert den JSON-String.

    Meistens wird eher gewünscht, dass ein Tooltipp beim Hover oder Klick aufgeht, also ein kleines Fenster mit weiteren Informationen. Dafür gibt es zahlreiche vorgefertigte Lösungen. Bei deiner Aufgabe glaube ich eher nicht, dass es etwas komplett fertiges gibt. Für den Slider jedoch schon, da gibt es ebenfalls zahlreiche. Selber benutze ich Swiper, der hat eine API, die keine Wünsche offen lässt und funktioniert auch auf Touch-Geräten. Für den Rest ist dann wohl selber machen angesagt. Was ist das denn für ein Bild? Raster, also JPG, PNG o. ä. oder Vector (SVG)? Und soll das Ganze auch responsiv sein?

    Zitat


    Wird hier trotzdem ein Server benötigt?

    Offenbar ja:

    Zitat

    The indexedDB API only works inside a webserver. When you navigate to it using the file system it won't work. The indexedDB API needs a domain context to work in and the file system doesn't provide that. Short you need an url to use the api.

    https://stackoverflow.com/questions/1569…local-html-file

    Bleibt dir wohl nichts anderes übrig, als einen lokalen Webserver zu installieren, wenn das bei euch zulässig ist.

    OK, dann empfehle ich die zweite Variante. Als ID würde ich einen "sprechenden" String empfehlen, damit Du dir keine Nummern merken musst.

    Etwa "superHeroes" in deinem Beispiel. Könnte dann auf PHP-Seite so aussehen:

    Ungetestet. Die ID musst Du dann beim Aufruf des Skripts als GET-Parameter übergeben. Etwas komplizierter wird es, wenn Du neben dem Key noch andere Parameter übergeben musst.

    Weiß nicht genau, wie deine Frage zu verstehen ist: Normaler Weise gibt es zu einer bestimmten API und URL einen Key. Möchtest Du mit getData.php mehrere verschiedene APIs abfragen? Das ginge, wenn Du die URL ohne Key als Parameter übergibst und dann im Skript den Key einsetzt. Oder nur eine ID als Parameter übergeben und anhand dessen aus einer Liste die URL einschl. Key holen - möglicher Weise die bessere Lösung. Einfacher wäre es aber, für jede API ein eigenes Skript zu schreiben.

    Gute Frage! Früher habe ich mal gelernt, dass lokale Variablen innerhalb einer Funktion nicht mehr verfügbar sind, nachdem diese durchlaufen und verlassen wurde. In diesem Fall trifft das offenbar nicht zu. Javascript merkt sich diese und sie sind auch später verfügbar, wenn der Eventlistener triggert. Der Begriff dafür lautet "closure", wenn ich mich richtig erinnere. Ein Verfallsdatum gibt es nicht, die Variable bleibt beliebig lange verfügbar.

    Der Grund ist, dass window.onload nur eine Funktion aufnehmen kann. Mit der zweiten Zuweisung von readTestText2 überschreibst Du readTestText. Die Lösung ist einfach: Beides in eine Funktion packen:

    Code
    window.onload = readTestText;
    function readTestText() {
        $('#absatzM').load('read.php');
        $('#absatzZ').load('readZ.php');
    }

    BTW: Du kannst auf das onload verzichten, wenn Du das Javascript ganz an das Ende des body stellst, vor das schließende </body>.

    BTW2: Du kannst hier vorteilhaft mit einem einzigen PHP-Skript auskommen, wenn Du den Anfangsbuchstaben als Parameter übergibst. Aber einen Schritt nach dem anderen.

    Zitat

    ob es dafür einen Weg gibt um dies zu schützen aber ich meine ich habe dazu schonmal ein Thema gemacht

    Ich kann mich auch erinnern, dass es dazu schon Mal einen Thread gab, aber ich finde ihn auf die Schnelle nicht wieder. Die Lösung besteht darin, die API in PHP z. B. mit file_get_contents zu lesen und auszugeben und im Javascript dann dieses PHP-Skript zu lesen. Dann ist der Key verborgen.