Na super! Dann verstehe ich bloß nicht, wie das Skript bei Direktaufruf die richtige Ausgabe liefern konnte?
Beiträge von Sempervivum
-
-
OK, dann wissen wir, dass das PHP funktioniert. Dann sieh mal in die Console, ob Du Hinweise findest.
-
-
Da fehlt jetzt 'low' in $values und das kann dazu führen, dass es zu einem Fehler im Javascript kommt weil das response.min fehlt. Füge das zunächst hinzu.
-
-
-
Ist das PDO oder mysqli?
-
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:
-
Gern geschehen, immer erfreulich, wenn man liest, dass etwas am Schluss funktioniert

-
Sieht schon sehr gut aus, nur sehe ich da einen Tippfehler in Zeile 12: vat vs. var.
-
-
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> °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.
-
Beides ist unabhängig voneinander. Für die Übertragung kannst Du JSON verwenden, egal ob die Werte in einer DB oder in einer Datei gespeichert werden.
-
Wie in deinem vorigen Thread schon empfohlen, kannst Du mit dem JSON-Format leicht mehrere Werte zusammen fassen und übertragen.
-
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:
Code
Alles anzeigenfetch('loadDay.php', { method: 'post', body: params }).then(res => { outputI.innerHTML= ""; return res.text(); }).then(res => { console.log(res); outputI.innerHTML= res; placeHolder_input = res; console.log(placeHolder_input) input.setAttribute("placeholder",placeHolder_input); }); -
Zitat
Wenn es nur zwei Werte sind, dann wäre Json doch wie "Mit Kanonen auf Spatzen schießen", oder?
... spricht einer, der anfangs den Einsatz einer Datenbank vorgeschlagen hat

-
Stimme zu, nicht nur änderungsfreundlicher, sondern auch besser lesbar, wenn man ein ass. Array verwendet.