Tablet - Button funkt net

Aus gegebenem Anlass: Sichert eure Backupcodes wenn ihr die Zwei-Faktor-Authentifizierung aktiviert habt!

Infos dazu findet ihr nochmal hier

  • Hey,


    bin gerade dabei ein Tablet zu bearbeiten.

    Die HTML Seite funktioniert ohne Probleme, das Hauptproblem ist nur, dass der Button oder meine Funktion nicht funktioniert..


    Clientside:

    Code: function FactionManagerSetRankName
    1. function FactionManagerSetRankName(rankId, htmlElem) {
    2. if (rankId <= 0 || htmlElem == null || htmlElem == undefined) return;
    3. var inputElem = $(htmlElem).parent().find("input");
    4. var inputVal = $(inputElem).val();
    5. if (inputVal == "" || inputVal == "") return;
    6. alt.emit("Client:Tablet:FactionManagerSetRankName", rankId, inputVal);
    7. }
    Code: for schleife
    1. for(var i in rankArray) {
    2. factionManagerRankNameHTML += `<li class='list-group-item'><div class='container left'><p><b>Rank-ID</b></p><p>${rankArray[i].rankId}</p></div>` +
    3. `<div class='container mid'><p><b>Rangname</b></p><p>${rankArray[i].rankName}</p></div><div class='container right'><p><b>Neuer Rankname</b></p><input type='text' placeholder='Neuer Rankname...' spellcheck='false'>` +
    4. "<button onclick='FactionManagerSetRankName(" + rankArray[i].rankId + ", this);' type='btn' style='margin-top: 0; padding: .08rem .5rem;' class='btn btn-sm btn-factionManagerHov'>Setzen</button></div></li>";
    5. }


    Serverside:

    Code: GetFactionName
    1. public static string GetFactionRankName(int factionId, int rankId)
    2. {
    3. if (factionId == 0 || rankId == 0) return "";
    4. var factionRankData = ServerFactionRanks_.FirstOrDefault(x => x.factionId == factionId && x.rankId == rankId);
    5. if(factionRankData != null)
    6. {
    7. return factionRankData.name;
    8. }
    9. return "";
    10. }


    Ich weiß leider auch nicht wo der Fehler ist, habe auch extra eine Abfrage gemacht wo abgefragt wird wenn man "test" ins Input eingibt, dass eine Meldung erscheint, er spricht aber Serverside nichts an..


    Eventuell kann mir ja einer helfen :thumbsup:


    e/ Fehler gefunden, danke an LeonMrBonnie das mit Webview.on hat geholfen.

    Einmal editiert, zuletzt von Kamisama ()

  • Für besser lesbaren Code der auch modern ist empfehle ich dir einige Sachen:

    1. let statt var
    2. Bei einem Array for of statt einem for in Loop
    3. Teilweise jQuery, teilweise Elemente in einem String. Lass jQuery komplett weg und verwende document.createElement um Elemente zu erstellen

    Und dein Problem ist, dass alt.emit in der WebView das Event an den Client schickt, nicht an den Server. Du musst das Event also mit webview.on abfangen, und von da aus dann an den Server mit alt.emitServer senden.

    webdev - js, nodejs

    :S:S:S


    Kontakt

    Discord: LeonMrBonnie#9840

  • Beitrag von Kamisama ()

    Dieser Beitrag wurde vom Autor aus folgendem Grund gelöscht: fixed ().