POST-Data (Ajax) empfangen und in Text umwandeln

Blade_Morgan

Newbie
Registriert
Nov. 2023
Beiträge
6
Benutzung: Ajax, pug, js

Hallo ihr,
Ich habe einen BMI-Rechner programmiert. Da sind 2 Input (Größe und Gewicht) auf meiner pug-Seite, wo die Daten per Ajax (Post) in einer separaten js.Datei router.post (Backend) gesendet werden. Dort habe ich den Rechner programmiert und die Rechnung funktioniert, da ich über console.log geprüft habe.
Zum Beispiel:
Javascript:
if (bmi < 18){
 output = "Sie haben starkes Untergewicht."
}
Mit res.send({output}) oder res.json({output}) sende ich die Daten zurück an Frontend, also meiner pug-Seite (glaube ich?).

Wie kann ich den output-Satz auf der Seite anzeigen lassen, nachdem der Benutzer auf den Button klickt und im Backend schnell gerechnet wird? Es wäre toll, dass ein hidden-Text wird.
 
Du musst ein HTML Element selektieren und den Inhalt reinschreiben. Je nachdem welches Framework du verwendest geht es unterschiedlich.

Javascript:
document.getElementById("my-output-div").innerHtml = "Sie haben starkes Untergewicht.";

oder mit jQuery z.b.
Javascript:
$('#my-output-div').html('Sie haben starkes Untergewicht.');
 
Danke für die Antwort.
Jeden Inhalt reinschreiben finde ich nicht effizient, da ich 8 if-Methoden mit jeweils 8 output habe. Es wäre schön, wenn ich output übernehmen könnte (wenn geht).
Notfalls geht auch alert.
 
Das ist doch simpel zu erledigen. Du speicherst einfach den Output deiner 8 IFs in einer Variable und nach deinen IFs schreibst du einfach den Output in dein element.
Code:
let output = ""

if (response === "irgendwas") {
    output = "du bist zu dick"
}
else {
    output = "solltest etwas mehr essen"
}

element.innerHTML = output

Du solltest dich auch fragen ob es wirklich sein muss eine Serverabfrage für die Berechnung des BMIs zu machen. Verwendest du eine streng geheime Formel?
 
Zurück
Oben