Javascript Form Variable in einem Window.Open Request einbauen

  • Hallo liebe Kollegen,


    ich habe mich heute hier angemeldet, weil ich so langsam verzweifel und dringt Hilfe benötige.


    Mein Problem liegt darin Variable aus Java in einem HTML Request zu verarbeiten.

    Ich habe dazu folgendes aufgebaut. Ich habe eine HTML Seite mit einigen Fragen aufgebaut, diese Frage werden dann über Java verarbeitet und dann möchte ich eine Info

    über das Ergebnis über Telegram an eine Gruppe verschicken.


    var summe = erg1 + erg2 + erg3 + erg4 + erg5 + erg6 + erg7;


    Ich bilde aus den Fragen ein Summen-Ergebnis.

    Diese Variable möchte ich nun über diesen Weg als Text versenden. Danach soll sich das Fenster wieder schließen.

    Doch so wie ich das aktuell mache, sendet das Skript nur den Text "summe" und nicht zb. das richtige Ergebnis die Zahl "35".


    var win = window.open("https://api.telegram.org/bot-ID/sendMessage?chat_id=0815&text=" +'summe','1366002941508','width=10,height=10,left=5,top=30');

    setTimeout(function () { win.close();}, 800);


    Was mache ich hier nur falsch?


    In diesem Versuch hat es gekappt, allerdings auch nur mit Zahlen, Variable mit Buchstaben haben noch nie funktioniert.


    document.write('<a href="https://api.telegram.org/bot-ID/sendMessage?chat_id=0515&text=' + wert10 + "&" + summe + '"><button style="height: 70px; width: 200px;"">Senden</button></a>');


    Aber hier hat mich der zusätzliche "Senden" Button gestört und das nicht alle Daten versendet wurden.


    Ich hoffe Ihr könnt mir hier weiterhelfen. Wenn noch Infos fehlen, dann bitte einfach kurz Nachfragen.


    Vielen lieben Dank


    Gruss

    Marcus

  • Keine Ahnung von diesem Telegram, aber zwei Dinge kann ich, denke ich, dazu sagen:

    1. Wenn ich das richtig sehe, geht es nur darum, eine bestimmte URL mit Parametern aufzurufen. Dann geht das wesentlich einfacher und direkter mit der fetch-API:

    fetch('https://api.telegram.org/bot-ID/sendMessage?chat_id=0515&text=' + wert10 + '&summe=' + summe);

    2. Wenn Du Variablen, egal ob diese einen String oder eine Zahl enthalten, in einen String einfügen willst, musst Du sie ohne Hochkommas notieren und mit den Teilstrings durch + verknüpfen, siehe oben.

  • @Sempervivum Super vielen Dank, könntest du bitte die Codezeile nochmal ganz genau aufschreiben. Das wäre super nett.


    var win = fetch('https://api.telegram.org/bot-ID/sendMessage?chat_id=0815&text= + erg8 + info + summe' , '1366002941508','width=10,height=10,left=5,top=30' );

    setTimeout(function () { win.close();}, 800);


    So geht es leider noch nicht.


    Ich muss dazu noch sagen das das ganze in einer HTML Datei läuft und dann natürlich ohne PHP oder einen Server.

  • Für fetch brauchst Du kein PHP, ist nur Javascript.

    Alles was zu dem window.open gehörte, musst Du weg lassen, d. h. es müsste so aussehen:

    fetch('https://api.telegram.org/bot-ID/sendMessage?chat_id=0815&text=' + erg8 + info + summe);

  • @Sempervivum Klasse das hat jetzt echt super geklappt. Vielen Dank


    Darf ich Euch in diesem Zusammenhang noch um einen weiteren Tipp bitten.

    Wäre es auch möchte diese gleiche Funktion über eine Email zu erreichen?


    <a href="mailto:test@musteremail.de?subject=' + Name + ' &body=' + erg8 + "><button style="height: 40px; width: 100px;" onclick="senden()">E-Mail Senden</button></a>


    Ich habe das hier schon mal gefunden, aber dort bekomme ich die Variable nicht mit eingebaut. Das läuft also so noch nicht.

  • Also ich möchte die Variablen die ich abgefragt habe, nun noch per Email über einen Button versenden können. Mir ist halt noch nicht klar wie ich es schaffe, das die Variablen auch dort richtig in den Body der Email eingetragen werden. Emailadresse ist immer die gleiche und der Betreff soll auch eine der Variable sein und dann den Rest der Abfrage muss alles in den Body der Email.

  • Versuche in deinem Javascript dieses:

    Code
    // Variablen Name und erg8 muessen vorhanden sein
    const ahref = document.querySelector('a[href^="mailto"]);
    ahref.href = 'mailto:test@musteremail.de?subject=' + Name + ' &body=' + erg8;
  • Voll ein Syntaxfehler, schließendes Hochkomma fehlte, so ist es richtig:

    Code
            const ahref = document.querySelector('a[href^="mailto"]');
            ahref.href = 'mailto:test@musteremail.de?subject=' + Name + ' &body=' + erg8;

    Getestet hiermit:

    Code
        <a href="mailto:test@@musteremail.de">Mail senden</a>
        <script>
            // Variablen Name und erg8 muessen vorhanden sein
            let Name = 'Betreff', erg8 = 'Der Inhalt';
            const ahref = document.querySelector('a[href^="mailto"]');
            ahref.href = 'mailto:test@musteremail.de?subject=' + Name + ' &body=' + erg8;
        </script>

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!