Announcement

Collapse
No announcement yet.

Auswahl via mailto senden

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Auswahl via mailto senden

    Hallo,

    ich habe JS-Skript nie wirklich gut beherrscht und auch 10 Jahre nicht mehr gebraucht. Letzte Woche habe ich aus beruflichen Gründen (Mediengestalter) die Reste meiner Programmierkenntnisse gebraucht.
    Meine Situation:
    Ich habe für jede Option eines Produkts ein DIV. Der User kann die DIVs anklicken die Farbe ändert sich, damit er weis welche Optionen er gewählt hat und es wird für die Option eine CSS-Klasse 'sel' gesetzt.
    Durch Klicken auf einen Link fragt ein weiteres Skript alle DIVs ab und übergibt den Inhalt der DIVs mit der CSS-Klasse 'sel' via mailto an eine E-Mail.
    Alles funktioniert super, wenn ich händisch die DIVs mit der Klasse 'sel' versehe.
    Wenn die Klasse 'sel' vom Skript setzt wird funktioniert es nicht mehr.
    Skripte und HTML ist in einer Datei.
    Die Skripte für das Setzen der 'sel'-Klassen und Markierungen sind im head.
    Das Skript zum Selektieren der ausgewählten DIV und Übergeben an die E-Mail befindet sich im Moment an letzter Stelle im Body.

    Ich glaube, dass etwas am Aufbau meiner Datei nicht stimmt.

    Code:
    (function () {
                document.write("<p><a href=\"mailto:xyr.com?subject=asdf&amp;body=Hallo%20ich%20habe%20gewählt:%0A%0A");
    
                var elms = document.getElementsByClassName("sel");
    
                Array.prototype.forEach.call(elms, function(elm) {
    
                    y = elm.textContent;
                    document.write(y);
                    document.write("%0A");
                });
            document.write("\">Klick Hier für E-Mail</a>");
            })();

  • #2
    Das sollen wir jetzt wie beurteilen, ohne die Datei?
    xyr.com -> Ist keine eMailadresse.
    Des Weiteren kannst du doch prüfen, ob
    document.getElementsByClassName("sel");
    etwas zurückgibt und wie der Quelltext zu diesem Zeitpunkt aussieht.
    Weiterhin ist mir nicht klar, warum das nun alles erst per Javascript in dem DOM gesetzt werden muss?
    Warum wird der zumailende Text einfach mal so da dazwischen geschrieben, anstatt in eine Variable und deren Inahlt ist der Body?
    Warum sind das nicht serverseitig abgehandelt, anstatt mit dem Client des Users?

    Auch gerne genutzt: https://api.jquery.com/

    https://api.jquery.com/toggleclass/

    https://api.jquery.com/class-selector/
    Zuletzt editiert von Christian Marquardt; 08.07.2019, 12:41.
    Christian

    Comment


    • #3
      Klar ist das keine E-Mail Adresse. Ich bin ja nicht doof, aber daran scheitert es auch nicht.
      document.getElementsByClassName("sel"); gibt etwas zurück, das habe ich doch geschrieben.
      Serverseitig geht nicht aus Gründen der Unternehmensstruktur.

      Es ist doch nicht so schwer zu verstehen.
      Es gibt Optionen für ein Produkt z.B. Alufelgen, Ledersitze, Sitzheizung
      Ich möchte NUR Alufelgen und klicke deswegen auf Alufelgen. Durch JS bekommt Alufelgen die CSS-Klasse 'sel'. Funktioniert
      Mit dem Skript oben frage ich alle Elemente nach der Klasse sel ab und schreibe die angewählten Elemente in die E-Mail.

      Wenn ich den DIV class="sel" händischn OHNE JS hinzufüge funktioniert alles super
      Wenn ich sie durch den Klick also mit JS hinzufüge sehe ich auch im FF Entwicklertool, dass die Klasse sel hinzugefügt wurde.
      Bei der Abfrage von allen Elementen der Klasse sel mit dem obrigen Skript ist das Ergebnis leer.

      Ist es jetzt verständlicher?

      Comment


      • #4
        Es ist doch nicht so schwer zu verstehen.
        Ok, wenn du meinst
        Christian

        Comment


        • #5
          Der Benutzer hat also ein Bestellformular und kann sein gewünschtes Produkt z.B via Checkboxen in mehreren DIVs individualisieren. Die Endauswahl soll via Mail versendet werden. Für so etwas kann man JavaScript verwenden, aber JS-Programmierung kann schwer zu erkennende Seiteneffekte haben, weswegen man eher zu JQuery greift: https://api.jquery.com/checked-selector/
          MfG
          Cheat-Sheets for Developers / Programming Quotes

          Comment


          • #6
            Joo, habe ich ihm schon mitgeteilt, auch die komplette Seite wäre nützlich zum analysieren.
            Will er aber nicht bekanntmachen
            Christian

            Comment

            Working...
            X