Ankündigung

Einklappen
Keine Ankündigung bisher.

Aktualisierte funktion übernimmt Variablenname und nicht den wert

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Aktualisierte funktion übernimmt Variablenname und nicht den wert

    Hallo zusammen
    Ich probiere einen click-event eines Buttons zu aktualisieren. Leider mit mässigem Erfolg. Ich schaffe es nicht dass die neue Funktion die Parameter übernimmt.
    Geprüft habe ich ob die werte richtig an die Funktion übergeben werden. Das ist ok. Leider werden aber die Variablennamen übergeben und nicht der Wert.

    Code:
    function change_mail(str_btn, id, mail) {
        var lng_id = id;
        var str_mail = mail;
        document.getElementById(str_btn).onclick = function(){"window.open('output_pdf.php?id=" + lng_id.value + "&mail=" + str_mail + ",'_blank').focus()"};
    }
    Was muss ich machen dass die Werte übergeben werden? Auch direkt übergeben führt nicht zum Ziel!
    Danke für Eure Hilfe im Voraus.

  • #2
    Kannst du bitte nachvollziehbaren Code hier rein stellen?
    Mit nur einer Funktion aus Javascript kann man nicht nachvollziehen was das Problem ist, es fehlt der zugehörige HTML-Teil auf dem die Funktion angewendet wird.

    Kommentar


    • #3
      Entschuldigung

      Ich habe ein listenfeld mit E-Mailadressen und einen Butten der ein pdf erstellen lässt und an eine E-Mailadresse sendet. Nach einem wechsel der Standard-E-Mailadresse soll der Aufruf über den Button aktualisiert werden.
      So dass das pdf an eine andere E-Mail gesendet wird.

      Listenfeld:
      HTML-Code:
      $hint .= getInputListfieldDB($adr_mail_list,"Nummer","Nummer",$adr_mail, "E-Mail", "mail", 12, false,"change_mail('mailsend',".$id.", mail.value)");
      Button:
      HTML-Code:
      <button id="mailsend" class="btn btn-warning btn-sm btn-block" type="button" onclick="window.open('output_pdf/rechnung/raport.php?id=15174&amp;mail=info@imobersteg.ch','_blank').focus()" style="font-weight:bold"><span class="glyphicon glyphicon-envelope"></span> Raport Mailen</button>
      Code:
       
       function change_mail(str_btn, id, mail) {     var lng_id = id;     var str_mail = mail;     document.getElementById(str_btn).onclick = function(){"window.open('output_pdf.php?id=" + lng_id.value + "&mail=" + str_mail + ",'_blank').focus()"}; }

      Kommentar


      • #4
        den obigen code kannkeineer lesen,
        bitte zeilenumbrüche einfügen

        Kommentar


        • #5
          Da stimmt etwas mit der Positionierung der Anführungszeichen im Body der Click-Funktion nicht.

          Kommentar


          • #6
            Diese Funktion erstellt ein Listenfeld mit den E-Mailadressen eines Kunden
            HTML-Code:
            print getInputListfieldDB($adr_mail_list,"Nummer","Nummer",$adr_mail, "E-Mail", "mail", 12, false,"change_mail('mailsend',".$id.", mail.value)");
            So wird der btn erstellt
            HTML-Code:
            <button id="mailsend" 
            class="btn btn-warning btn-sm btn-block" 
            type="button" onclick="window.open('output_pdf/rechnung/raport.php?id=15174&amp;mail=info@imobersteg.ch','_blank').focus()" 
            style="font-weight:bold"><span class="glyphicon glyphicon-envelope"></span> Raport Mailen</button>
            Die folgende Funktion sollte den Befehl onclick auswechseln mit den übergebenen Variablen
            Ich versuchte mit den Anführungszeichen zu umgehen, dass NICHT die Variablenbezeichner sondern der Innhalt übergeben wird.
            Leider wird in jeder meiner versuche immer nur der Variablentext "+ lng_id.value +" übergeben! Warum????
            Code:
            function change_mail(str_btn, id, mail) {
            var lng_id = id;
            var str_mail = mail;
            document.getElementById(str_btn).onclick = function(){"window.open('output_pdf.php?id=" + lng_id.value + "&mail=" + str_mail + ",'_blank').focus()"}; }

            Kommentar


            • #7
              Der jetzige Ansatz wirkt auf mich spielerisch spekulativ.

              Ein strukturelles Problem besteht darin, dass die Klickfunktion nicht von vornherein an das Problem angepasst ist.

              Wenn die Rechnungsempfänger für JavaScript verfügbar sind, könnte man die Klickfunktion so definieren, dass sie sowohl die Auswahl des jeweils nächsten Rechnungempfängers als auch den anschließenden Aufruf des PHP-Scripts vornimmt.

              Kommentar


              • #8
                Zitat von protestix Beitrag anzeigen
                Kannst du bitte nachvollziehbaren Code hier rein stellen?
                So sehe ich das auch.
                Dein Code ergibt nur Stückweise sinn.
                Wenn du deine Buttons mit Php erstellst , sollte in Quelltext ja sowas raus kommen
                HTML-Code:
                <button type="button" onclick="change_mail(123,'blabla@blbla.de')"> Raport Mailen</button>
                Dann brauchst du ein JS der deine Popup öffnet
                HTML-Code:
                <script>
                function change_mail(id, mail) {
                    link="output_pdf/rechnung/raport.php?id="+id+"&mail=" + mail;
                    window.open(link,'_blank').focus();
                }
                </script>
                ungetestet
                Das wahr es doch schon.
                Oder verstehe ich deinen Code falsch ?
                Ich mach keine Rechtschreibfehler - ich schreib Freestyle!
                Erreichbar in mein Javascript-Forum und in Facebook-Chat

                Kommentar


                • #9
                  Besten Dank für eure Inputs. Der Ablauf ist aber anders.
                  Das Listenfeld liefert die möglichen E-Mailadressen. Nach dem ändern einer Emailadresse durch das Listenfeld, sollte der Button aktualisiert werden, dass wenn nun der User den Button klick die Rechnung an die im Listenfeld eingestellte EMail gesendet wird.
                  Das Javaskript sollte das erledigen. Leider wird nicht die übergebene Emailadresse, die tatsächlich übergeben wird und mit alert auch angezeigt wir, übergeben! Sondern die in den beiden"+" befindende variable als Text.
                  Wie muss ich die Variable übergeben, dass der Wert der Variable eingesetzt wird?

                  Besten dank für die Hilfe.

                  Kommentar


                  • #10
                    Nach dem ändern einer Emailadresse durch das Listenfeld, sollte der Button aktualisiert werden,
                    Nein, falscher Ansatz.

                    Der Button wird mit eventlistener abgefragt.

                    onclick im HTML Element sollte man nicht machen.

                    Der Wert aus dem Select erhältst du mit
                    HTML-Code:
                    var e = document.getElementById("ListElement");
                    var email = e.value;
                    Versuche dich mal daran.

                    Kommentar

                    Lädt...
                    X