Beiträge von Sempervivum

    Dann müssen wir mal ins Debuggen einsteigen. Fehleranzeigen von PHP einschalten:

    Code
    ini_set('display_errors', '1');
    error_reporting(E_ALL);

    und dann laden.php direkt aufrufen. GET oder POST-Parameter werden ja nicht gebraucht.

    Ein wenig ungünstig geschachtelt aber wenn ich das HTML beibehalte, funktioniert es mit diesem CSS:

    Code
            .beitragsinformationen,
            .kategorie {
                display: flex;
                align-items: center;
            }

    Je nachdem, wie die Element ausgerichtet sein sollen, kannst Du für align-items auch flex-start oder flex-end nehmen.

    Dann kannst Du mit fetch die Zeile aus dem Resultset auslesen:

    Code
    $result = $dbv->query($sql);
    $row = $result->fetch();

    Und die Variable $row steht zur Verfügung. (ungetestet)

    Allerdings würde ich eher empfehlen, beide Werte in eine Zeile einzutragen, dann würdest Du nur ein Mal auslesen müssen.

    Auf die Datenbanksachen habe ich mich jetzt nicht fokussiert. Aber wenn es nur zwei Sensoren bzw. nur einen mit min/max gibt, ist zunächst nicht plausibel, warum es einen foreach braucht. Vermutlich gibt es nur einen Datensatz in der DB und es müsste ausreichen, diesen z. B. mit fetch_row aus dem Resultset zu lesen.

    Ich schließe es mal hier an, weil das Verhaltensmuster nicht nur irrational sondern auch kurios ist:

    User1: "Ich empfehle den Einsatz von Lösung A"

    Ja-Aber-Poster: "Falsch, TO sollte B einsetzen"

    ... etwas später oder in einem anderen Thread:

    User1: "Ich empfehle, Lösung B zu verwenden"

    Ja-Aber-Poster: "Gaaanz falsch, TO muss Lösung A einsetzen"

    Siehe z. B. hier:

    Höchsten Wert Speichern

    Verstehe, dann müsste es in etwa so aussehen:

    Code
    $values = [
        'current' => $sensor1,
        'min' => $row['low_temp'], 
        'max' => $row['high_temp'],
        'zulauf' => $sensor2
    ];
    echo json_encode($values);

    Und der Rest entsprechend.

    Eine Einführung findest Du z. B. hier:

    https://webdeasy.de/json-in-javascript-und-php-benutzen/

    Dann die Werte etwa so einpacken und ausgeben in laden.php:

    Code
    $values = ['current' => $sensor1, 'min' => $row['low_temp'], 'max' => $row['high_temp']];
    echo json_encode($values);

    Und dann die Werte laden entspr.

    https://api.jquery.com/jquery.getjson/

    Code
    $.getJSON('laden.php', function(response) {
        // hier steht die Antwort vom Server als Objekt bzw. ass. Array in response zur Verfügung
        $('#current-value').text(response.current);
        $('#min-value').text(response.min);
        $('#max-value').text(response.max);
    });

    Wobei Du den Containern, wo die Werte hin sollen, jeweils die passende ID geben musst, z. B. so:

    Code
                       <div class="col-md-3 col-sm-3 col-xs-6">
                            <div class="alert alert-danger back-widget-set text-center">
                                    <h3><span id="max-value"></span> &#x00B0;C</h3>
                                Höchster Wert / 7 Tage
                            </div>
                        </div>

    Man könnte auch mit einem Template arbeiten aber weil das HTML etwas lang ist würde das die Sache unnötig aufblähen.

    BTW: Ich sehe da in deiner Basisversion von laden.php zwei Sensoren. Verstehe ich das richtig, dass es dann für jeden min., max, und aktuell geben wird, d. h. 6 Werte?

    JSON ist nur ein Format, um Strukturen wie Arrays in einem String zu kodieren um sie übertragen zu können. Für die Aktualisierung ohne Neuladen der Seite bist Du mit Ajax und setInterval schon auf dem richtigen Wege. Du brauchst dann nur auf jQuery.JSON umzustellen.

    Vor einiger Zeit in einer Gartengruppe bei Facebook gefunden:

    User 1: “Hallo, kann mir jemand helfen? Ich müsste einen Gartenschlauch verlängern, wie mache ich das am besten?”

    User 2: “Warum willst Du den denn verlängern?”

    User 1: “Weil er zu kurz ist?”

    User 3: “Kauf Dir lieber gleich einen passenden ohne Verlängerung!”

    User 1: “Aber wozu denn, es fehlen doch nur 5 Meter?”

    User 2: “Ja, aber so ein durchgehender Schlauch ist immer besser!”

    User 3: “Mein Reden!”

    User 4: “Meine Gühte, der will doch nur wissen wie man einen Schlauch verlängern tut!”

    User 5: “Lern Du ersmal Deutsch!”

    User 1: “ersTmal!”

    User 5: “Das sind mir die Liebsten – hier um Hilfe bitten und dann andere anmachen!”

    User 6: “Echt ey, wird immer schlimmer hier. Ich habe schon Schläuche verlängert, da hast Du noch in die Windeln geschissen!”

    User 1: “Dann sag mir doch mal wie ich das am besten mache?”

    User 5: “Würde ich an seiner Stelle nicht machen!”

    User 2: “Du hast mir immer noch nicht geschrieben, warum Du einen Schlauch verlängern willst, was hast Du denn vor damit???”

    User 1: “Meinen Garten bewässern.”

    User 7: “Was ist denn das für ein Garten?”

    User 1: “Ja, so ein ganz normaler Garten halt?”

    User 9: “Du weißt aber schon, dass gewisse Pflanzen zu viel Wasser nicht vertragen, oder?”

    User 4: “Ja meine Frässe, er will doch nur den Schlauch verlähngern!”

    User 7: “Halt Du Dich da raus, Penner!”

    User 4: “Kuck dich ma an, Arschloch!”

    User 1: “Kann mir denn jetzt keiner helfen?”

    User 12: “Hör mal auf zu hetzen, ja? Ich habe auch noch was anderes zu tun als irgendwelche Fragen von Neulingen zu beantworten!”

    User 1: “Warum antwortest Du denn dann?”

    User 13: “Hältst Dich für einen ganz Schlauen, oder?”

    User 1: “Nein, gar nicht, ich möchte doch nur einen Schlauch verlängern!”

    User 2: “Also ich habe vor 10 Jahren mal einen Schlauch verlängert, hat aber nur 1 Jahr gehalten, seither schwöre ich auf durchgehende Schläuche!”

    User 1: “Wie hast Du den Gartenschlauch denn verlängert?”

    User 2: “Mit einer Verlängerung?”

    User 1: “Also einfach so ein Stück dran gemacht oder wie?”

    User 10: “Warum gehst Du nicht einfach in einen Baumarkt???”

    User 1: “Weil ich dachte, ich informiere mich hier vorher mal?”

    User 15: “Ich benutze ja immer noch eine Gießkanne, gibt nix besseres!”

    User 17: “Jau, kann ich mich auch noch dran erinnern… das waren noch Zeiten, aber heute hält ja nix mehr, geht ja alles sofort kaputt!”

    User 1: “Also kann mir keiner sagen, wie ich einen Schlauch verlängere?”

    User 15: “Lass das einfach und nimm eine Gießkanne, hält auch viel fitter!”

    User 1: “Aber ich kann nicht mehr so gut laufen und tragen…”

    User 18: “Dann bist Du hier falsch!!!”

    User 5: “Genau!”

    User 1: “Warum?”

    User 17: “Das hier ist ein Gartenforum, wenn Du Probleme mit dem Laufen und Tragen hast, meld` Dich in einem Gesundheitsforum an!!!”

    Admin: „Dieser Thread wurde gesperrt und mehrere User wurden stumm gestellt, was ist eigentlich los mit Euch(?)!“

    Häufiges Problem, man müsste eigentlich mal eine FAQ dafür schreiben ...

    Der Grund ist, dass fetch asynchron arbeitet, d. h. die Anfrage wird an den Server geschickt und es dauert einen kleinen Moment bis die Antwort eintrifft. Notierst Du das input.setAttribute("placeholder",placeHolder_input); direkt nach dem Aufruf von loadDay() ist die Antwort noch nicht da und die Variable ist nicht definiert.

    Lösung, indem Du auch diese Anweisung im Callback des fetch notierst: