Beiträge von Sempervivum

    Wie ich schon vermutet hatte, handelt es sich um ein sogenanntes Affenformular, d. h. das PHP für die Verarbeitung befindet sich auf der selben Seite wie das Formular selber. In dem Fall wird das PHP auch beim ersten Aufruf der Seite ausgeführt, wenn der Benutzer noch gar nichts eingegeben und auch nicht Submit betätigt hat.

    Gängige Lösung: Gib dem Submit-Button einen Namen, z. B. name="submit" , dann kannst Du diesen im PHP prüfen und die Prüfung und Verarbeitung nur ausführen, wenn der entspr. POST-/GET-Parameter gesetzt ist:

    Code
    if (isset($_GET['submit'])) {
        // das Formular wurde abgeschickt
        // pruefen und verarbeiten
    }

    Verstehe. Dein Code, so wie er ist, wird bei mir im Opera so dargestellt, wie Du es vorhast: Beide Texte links ausgerichtet. Es kann aber sein, dass andere Browser es anders machen.

    Ich schlage vor, das p-Element in das li hinein zu nehmen, so:

    Code
        <ul class="red-triangle">
            <li><strong>Automatic Built-In Die-Cutting</strong>
                <p>You never need to order custom die-cut media again. Just print and cut labels on your own, with one
                    printer!
                </p>
            </li>
        </ul>

    Dann ist es valide und wird wahrscheinlich so dargestellt, wie Du es möchtest.

    Zunächst mal ist dieses HTML nicht valide. Der Validator sagt dazu:

    Zitat

    Error: Element p not allowed as child of element ul in this context. (Suppressing further errors from this subtree.)

    Als Kindelemente von ul sind nur li zulässig.

    Dann verstehe ich nicht richtig, was deine Absicht ist, wenn Du schreibst:

    Zitat

    Ich würde es gerne so machen, dass der Text unter dem Aufzählungspunkt, also "You never need to..." auf einer Linie mit dem Text hinter dem Aufzählungspunkt anfängt.

    Hast Du die Seite schon online? Das Problem mit Fancybox würde mich interessieren.

    Alternativ könntest Du die Bilder alle nebeneinander in einem Container anordnen und für diesen das Scrollen einschalten durch overflow-x: auto;. Dann würde ich erwarten, dass am Smartphone das Durchwischen funktioniert, allerdings ohne Einrasten.

    PS: Ich hätte das gleich testen sollen: Die verketteten += sind nicht das Problem, sondern die Variablen sind undefiniert, wenn die Checkbox nicht gecheckt ist. Und bei den keys ist das führende & überflüssig, weil die Parameter aus den Checkboxen es schon haben. Dieses liefert die gewünschte URL:

    Ich denke, ich sehe wo es noch hakt: Du brauchst noch die Elemente für die Anzeige, d. h. dieses:

    Code
    // SELECT ELEMENTS
    const iconElement = document.querySelector(".weather-icon");
    const tempElement = document.querySelector(".temperature-value p");

    am Anfang des Skriptes.

    PS: Ich vermute mal, dass Du einfach die Standortabfrage gelöscht hast. Dann kann es nicht mehr funktionieren, denn die Funktion getWeather wird in setPosition aufgerufen und diese ist wieder ein Callback bei der Standortabfrage in Zeile 15. D. h. das einzige, was Du tun musst, ist die Funktion getWeather() am Ende des Skripts aufzurufen.

    Sieh genau hin, ich habe, um es leicht testen zu können, das Eintragen in die HTML-Elemente auskommentiert und die Daten statt dessen in die Console geschrieben:

    Code
            function displayWeather() {
                console.log(weather);
                // iconElement.innerHTML = `<img src="icons/${weather.iconId}.png" />`;
                // tempElement.innerHTML = `${weather.temperature.value}°<span>C</span>`;
            }

    Wenn Du das wieder rückgängig machst, sollte es funktionieren:

    Code
            function displayWeather() {
                iconElement.innerHTML = `<img src="icons/${weather.iconId}.png" />`;
                tempElement.innerHTML = `${weather.temperature.value}°<span>C</span>`;
            }

    Ich habe dein Skript mal auf das notwendigste reduziert und dann funktioniert es einwandfrei:

    In deinem Skript ist jedoch die Standortabfrage noch drin. Soll das jetzt die Version vor oder nach dem Umbau sein?

    Ich habe mal einen Prototypen gemacht, um den roten Balken in das SVG einzufügen:

    ?thumbnail=1

    Die Parameter werden aus dem vorhandenen SVG ausgelesen. Ist kein Label "2019-2020" da, wird auch kein Balken erzeugt.

    Funktioniert auf meiner Testseite; es muss dann noch in die originale Seite integriert werden.