Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Visualisierung
  4. Auswahlliste in einem String speichern

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    17
    1
    368

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    4.9k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.3k

Auswahlliste in einem String speichern

Geplant Angeheftet Gesperrt Verschoben Visualisierung
17 Beiträge 2 Kommentatoren 752 Aufrufe 2 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • OliverIOO OliverIO

    @marc9025

    1. Klar kann man alle programmieren. Ich hab jetzt mal ein basic select element des browsers genommen. im internet gibt es auch entsprechend viele ersatz elemente, die die funktionalität nachahmen. aber zusammen mit vis muss man das dann individuell anpassen.
      du kannst ja mal schauen ob du so was im internet findest (also konkreten html/javascript code), ich schaue dann wie aufwändig es ist das anzupassen.
      hier ein vorschlag
      https://github.com/ehynds/jquery-ui-multiselect-widget

    2. ja das geht auch, dazu müsste man dann die interpretation von values anpassen.
      Aktuell kennt er ja nur eine Liste von Werten.
      Das würde dann so aussehen

    <select id="mySelect"  onchange="myFunction(this)" multiple="multiple">
    </select>
    <script>
        var datapoint="0_userdata.0.test.test1";
        var selectedvalue = "<%= dp['0_userdata.0.test.test1'] %>";
        var selectid="mySelect";
        var values= [
            {"display":"Wert1",value:"w1"},
            {"display":"Wert2",value:"w2"},
            {"display":"Wert3",value:"w3"},
            {"display":"Wert4",value:"w4"}
            ];
        values.map(el=>$("#"+selectid).append($('<option>', {
            value: el.value,
            text: el.display,
            selected:selectedvalue.split("|").includes(el.value)
        })));
        function myFunction(el) {
            vis.setValue(datapoint,$(el).val().join("|"));
        }
    </script> 
    
    M Offline
    M Offline
    Marc9025
    schrieb am zuletzt editiert von
    #7

    @oliverio
    vielen vielen Dank für deine Mühe.
    Es klappt super :+1:
    Aus deinem Link das Demo Projekt
    https://ehynds.github.io/jquery-ui-multiselect-widget/
    das wäre doch schon Perfekt ;)
    Aber nur wenn das nicht zu viel Aufwand ist.

    OliverIOO 1 Antwort Letzte Antwort
    0
    • M Marc9025

      @oliverio
      vielen vielen Dank für deine Mühe.
      Es klappt super :+1:
      Aus deinem Link das Demo Projekt
      https://ehynds.github.io/jquery-ui-multiselect-widget/
      das wäre doch schon Perfekt ;)
      Aber nur wenn das nicht zu viel Aufwand ist.

      OliverIOO Offline
      OliverIOO Offline
      OliverIO
      schrieb am zuletzt editiert von
      #8

      @marc9025

      probier mal hier.
      das mit dem widget war sogar noch einfacher, da genau das vorgecshlagene bereits in vis enthalten ist (allerdings in einer seeeehr alten version) zur wauswahl der widgets.
      kleine schwierigkeit ist, das das multiselect bei jedem klick sich schließt und du für die wahl weitere elemente das immer erneut öffnen musst.
      problem ist, sobald ein wert in einen datenpunkt geschrieben wird, wird das widget komplett neu erzeugt und dabei wird es geschlossen.

      <select id="mySelect" multiple="multiple" onchange="myFunction(this)">
      </select>
      <%= dp['0_userdata.0.test.test1'] %>
      <script>
          var datapoint="0_userdata.0.test.test1";
          var selectedvalue = "<%= dp['0_userdata.0.test.test1'] %>";
          var selectid="mySelect";
          var values= [
              {"display":"Wert1",value:"w1"},
              {"display":"Wert2",value:"w2"},
              {"display":"Wert3",value:"w3"},
              {"display":"Wert4",value:"w4"}
              ];
          values.map(el=>$("#"+selectid).append($('<option>', {
              value: el.value,
              text: el.display,
              selected:selectedvalue.split("|").includes(el.value)
          })));
          var $mySelect  = $('#mySelect').multiselect();
          function myFunction(el) {
              debugger;
              vis.setValue(datapoint,($(el).val()||[" "]).join("|"));
          }
      </script> 
      

      Meine Adapter und Widgets
      TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
      Links im Profil

      M 1 Antwort Letzte Antwort
      0
      • OliverIOO OliverIO

        @marc9025

        probier mal hier.
        das mit dem widget war sogar noch einfacher, da genau das vorgecshlagene bereits in vis enthalten ist (allerdings in einer seeeehr alten version) zur wauswahl der widgets.
        kleine schwierigkeit ist, das das multiselect bei jedem klick sich schließt und du für die wahl weitere elemente das immer erneut öffnen musst.
        problem ist, sobald ein wert in einen datenpunkt geschrieben wird, wird das widget komplett neu erzeugt und dabei wird es geschlossen.

        <select id="mySelect" multiple="multiple" onchange="myFunction(this)">
        </select>
        <%= dp['0_userdata.0.test.test1'] %>
        <script>
            var datapoint="0_userdata.0.test.test1";
            var selectedvalue = "<%= dp['0_userdata.0.test.test1'] %>";
            var selectid="mySelect";
            var values= [
                {"display":"Wert1",value:"w1"},
                {"display":"Wert2",value:"w2"},
                {"display":"Wert3",value:"w3"},
                {"display":"Wert4",value:"w4"}
                ];
            values.map(el=>$("#"+selectid).append($('<option>', {
                value: el.value,
                text: el.display,
                selected:selectedvalue.split("|").includes(el.value)
            })));
            var $mySelect  = $('#mySelect').multiselect();
            function myFunction(el) {
                debugger;
                vis.setValue(datapoint,($(el).val()||[" "]).join("|"));
            }
        </script> 
        
        M Offline
        M Offline
        Marc9025
        schrieb am zuletzt editiert von
        #9

        @oliverio
        ja soweit ist es super.
        Stimmt es schließt bei jedem klick was es etwas schwierig macht, wenn man mal mehr anklicken möchte :)

        Jetzt ist es so das, dass Ergebnis angezeigt wird. Kann man das ausblenden ? Ich habe da nämlich ziemlich lange Namen :)

        1 Antwort Letzte Antwort
        0
        • OliverIOO Offline
          OliverIOO Offline
          OliverIO
          schrieb am zuletzt editiert von
          #10

          @marc9025
          Sorry, vergessen zu entfernen.
          Einfach Zeile drei löschen.

          Meine Adapter und Widgets
          TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
          Links im Profil

          1 Antwort Letzte Antwort
          0
          • M Offline
            M Offline
            Marc9025
            schrieb am zuletzt editiert von
            #11

            @oliverio
            super, vielen dank :+1:
            gibt es den eine Möglichkeit den "Fehler mit dem schließen beim klicken" zu beheben ?

            OliverIOO 1 Antwort Letzte Antwort
            0
            • M Marc9025

              @oliverio
              super, vielen dank :+1:
              gibt es den eine Möglichkeit den "Fehler mit dem schließen beim klicken" zu beheben ?

              OliverIOO Offline
              OliverIOO Offline
              OliverIO
              schrieb am zuletzt editiert von
              #12

              @marc9025
              ne leider mit der basisfunktionalität nicht und ohne da noch was größers dazuzuprogrammieren.
              das ist die funktionsweise des widgets, das sobald eine änderung des datenpunkts erfolgt sich das ding neu aufbaut.
              ansonsten müsste man noch eine bestätigung mit einbauen, das der code weiß wann fertig ist. hm das könnte ich mal noch probieren.
              dann würde automatisch am ende noch ein element eingefügt werden, das "fertig" heißt. erst dann würde der datenpunkt geschrieben werden.

              Meine Adapter und Widgets
              TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
              Links im Profil

              M 1 Antwort Letzte Antwort
              0
              • OliverIOO OliverIO

                @marc9025
                ne leider mit der basisfunktionalität nicht und ohne da noch was größers dazuzuprogrammieren.
                das ist die funktionsweise des widgets, das sobald eine änderung des datenpunkts erfolgt sich das ding neu aufbaut.
                ansonsten müsste man noch eine bestätigung mit einbauen, das der code weiß wann fertig ist. hm das könnte ich mal noch probieren.
                dann würde automatisch am ende noch ein element eingefügt werden, das "fertig" heißt. erst dann würde der datenpunkt geschrieben werden.

                M Offline
                M Offline
                Marc9025
                schrieb am zuletzt editiert von
                #13

                @oliverio
                das wäre natürlich mega wenn das gehen würde.

                OliverIOO 1 Antwort Letzte Antwort
                0
                • M Marc9025

                  @oliverio
                  das wäre natürlich mega wenn das gehen würde.

                  OliverIOO Offline
                  OliverIOO Offline
                  OliverIO
                  schrieb am zuletzt editiert von
                  #14

                  @marc9025

                  so hier.
                  Den display-Wert von fertig darfst du Ändern, den value-Wert von fertig nicht.

                  <select id="mySelect" multiple="multiple" onchange="myFunction(this)">
                  </select>
                  <script>
                      var datapoint="0_userdata.0.test.test1";
                      var selectedvalue = "<%= dp['0_userdata.0.test.test1'] %>";
                      var selectid="mySelect";
                      var values= [
                          {"display":"Wert1",value:"w1"},
                          {"display":"Wert2",value:"w2"},
                          {"display":"Wert3",value:"w3"},
                          {"display":"Wert4",value:"w4"},
                          {"display":"fertig",value:"fertig"}
                          ];
                  //der letzte eintrag mit fertig muss genau so bleiben, oder der code muss angepasst werden    
                      
                      values.map(el=>$("#"+selectid).append($('<option>', {
                          value: el.value,
                          text: el.display,
                          selected:selectedvalue.trim().split("|").includes(el.value)
                      })));
                      var $mySelect  = $('#mySelect').multiselect({
                          click: function(event,ui) {
                          }
                      });
                      function myFunction(el) {
                          debugger;
                          if (($(el).val()||[" "]).includes("fertig")) {
                              vis.setValue(datapoint,($(el).val()||[]).filter(el=>el!="fertig").join("|")+" ");
                          }
                      }
                  </script> 
                  

                  Meine Adapter und Widgets
                  TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                  Links im Profil

                  M 1 Antwort Letzte Antwort
                  1
                  • OliverIOO OliverIO

                    @marc9025

                    so hier.
                    Den display-Wert von fertig darfst du Ändern, den value-Wert von fertig nicht.

                    <select id="mySelect" multiple="multiple" onchange="myFunction(this)">
                    </select>
                    <script>
                        var datapoint="0_userdata.0.test.test1";
                        var selectedvalue = "<%= dp['0_userdata.0.test.test1'] %>";
                        var selectid="mySelect";
                        var values= [
                            {"display":"Wert1",value:"w1"},
                            {"display":"Wert2",value:"w2"},
                            {"display":"Wert3",value:"w3"},
                            {"display":"Wert4",value:"w4"},
                            {"display":"fertig",value:"fertig"}
                            ];
                    //der letzte eintrag mit fertig muss genau so bleiben, oder der code muss angepasst werden    
                        
                        values.map(el=>$("#"+selectid).append($('<option>', {
                            value: el.value,
                            text: el.display,
                            selected:selectedvalue.trim().split("|").includes(el.value)
                        })));
                        var $mySelect  = $('#mySelect').multiselect({
                            click: function(event,ui) {
                            }
                        });
                        function myFunction(el) {
                            debugger;
                            if (($(el).val()||[" "]).includes("fertig")) {
                                vis.setValue(datapoint,($(el).val()||[]).filter(el=>el!="fertig").join("|")+" ");
                            }
                        }
                    </script> 
                    
                    M Offline
                    M Offline
                    Marc9025
                    schrieb am zuletzt editiert von
                    #15

                    @oliverio
                    super es ist fast perfekt ;)
                    Bei mir zeigt er den Datenpunkt über dem Widget an, kann man den ausblenden ?

                    OliverIOO 1 Antwort Letzte Antwort
                    0
                    • M Marc9025

                      @oliverio
                      super es ist fast perfekt ;)
                      Bei mir zeigt er den Datenpunkt über dem Widget an, kann man den ausblenden ?

                      OliverIOO Offline
                      OliverIOO Offline
                      OliverIO
                      schrieb am zuletzt editiert von
                      #16

                      @marc9025

                      sollte er nicht. bei mir sieht das so aus

                      16ce26ff-cea8-4316-9021-fb65df985cf3-image.png

                      Meine Adapter und Widgets
                      TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                      Links im Profil

                      M 1 Antwort Letzte Antwort
                      0
                      • OliverIOO OliverIO

                        @marc9025

                        sollte er nicht. bei mir sieht das so aus

                        16ce26ff-cea8-4316-9021-fb65df985cf3-image.png

                        M Offline
                        M Offline
                        Marc9025
                        schrieb am zuletzt editiert von
                        #17

                        @oliverio
                        tut mir leid das war mein Fehler :disappointed:
                        Dir vielen Dank für deine Mühe und deine Geduld es ist so wie ich es brauche. :+1:

                        1 Antwort Letzte Antwort
                        0
                        Antworten
                        • In einem neuen Thema antworten
                        Anmelden zum Antworten
                        • Älteste zuerst
                        • Neuste zuerst
                        • Meiste Stimmen


                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        693

                        Online

                        32.7k

                        Benutzer

                        82.5k

                        Themen

                        1.3m

                        Beiträge
                        Community
                        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                        ioBroker Community 2014-2025
                        logo
                        • Anmelden

                        • Du hast noch kein Konto? Registrieren

                        • Anmelden oder registrieren, um zu suchen
                        • Erster Beitrag
                          Letzter Beitrag
                        0
                        • Home
                        • Aktuell
                        • Tags
                        • Ungelesen 0
                        • Kategorien
                        • Unreplied
                        • Beliebt
                        • GitHub
                        • Docu
                        • Hilfe