hmm: Schiebebalken und Ankreuzfeld in einer Tabelle

Hi Leute,

ich stamme eher aus dem Bereich der Mathematik und kenne mich daher nicht besonders gut mit gehobener GUI Programmierung aus. Ich habe ein Script geschrieben und möchte die dazugehörige GUI verschönern (bzw. "benutzbar" machen).

Mein Ziel:

Eine Tabelle, welche sich wärend der Laufzeit füllt. Sie soll zwei Spalten haben, in der ersten stehen Namen mit Checkboxen und in der zweiten Spalte jeweils ein dazugehöriger einfacher Schieberegler, welcher nur den momentanen Wert des jeweiligen Schiebecurserers ausgeben muss.

Das Problem ist eine solche Tabelle während der Laufzeit mit passenden Schiebereglern und Checkboxen zu füllen.

Ich habe auf einem anderen Rechner mit einer Tabelle von Selfhtml und einem Schieberegler herumexperimentiert, allerdings sehr erfolglos, auch der Einsatz von document.createObj. brachte kein Ergebnis.

Kennt einer von euch einen passenden Trick der die Sache vereinfacht? Um Buttons wärend der Laufzeit zu setzen haben ich die Anweisung Options genutzt, gibt es sowas eventuell auch für mein Problem?

  1. Grüße,
    schieberegler wurden mit HTML5 eingefügt -
    <input type="range" min="0" max="50" value="25" step="5" />
    erzgeugen der Objekte mache ich meist sehr stupide über

      
    document.createObject("input");  
    
    

    mit anhänder der eigenschaften,. hab ne hilfsklasse für.

    wie liegen deine daten denn vor? tabelle? live berechnung? mehr daten wären schon nötig dir helfen zu könnne.
    außerdem - ein bisshen was dazu elrnen müsstest du schon. bereit?
    MFG
    bleicher

    --
    __________________________-

    FirefoxMyth
    1. Morgen,

      dazulernen ist immer gut. Meine Daten liegen als Array vor, eins für die Namen eins für die Werte des Sliders.

      <input type="checkbox" name="test" id="checks" />
      erzgeugen der Objekte mache ich meist sehr stupide über

      document.createObject("test");

      document.createObject("checks");

      habe ich bereis ausprobiert, "input" werde ich gleich ausprobieren, insbesondere die append funktion.

      Meine derzeitige Tabelle liegt in einem anderen Fiele und kann bisher auch nur aus diesem aufgerufen werden (warum weiß ich noch nicht), daher versuche ich meine checkboxen (sofern existent) in einem array an eine bestimmte klasse des tabellenfiles zu übergeben

      1. Wie kann in meinem Eclipse js html5 nutzbar machen? Anscheinend habe ich eine ältere Version von html.

        Folgendes geht bei mir nicht:

        function test(){  
        	alert("test");  
          
        	var neu = document.createElement("input");  
        	  
        	document.Bereich.appendChild(neu);  
        }  
        

        und im body:

        <input type="checkbox" id="test" name="checks" value="check" onclick="">

        <div id="Bereich" style="border:1px black solid; padding:10px">
        </div>

        was mache ich hier falsch?

        1. ok, frage nr zwei wäre gelöst, es gibt für id, name etc. unterschiedliche funktionen:

          function test(){

          	var neu = document.getElementById("test");  
          	  
          	  
          	var Ausgabebereich = document.getElementById("Bereich");  
          	alert(Ausgabebereich);  
          	Ausgabebereich.appendChild(neu);  
          	alert("angekommen");  
          }  
          

          <input type="checkbox" id="test" name="checks" value="check" onclick="">

          <div id="Bereich" style="border:1px black solid; padding:10px">
          </div>

          jetzt bleibt das problem mit den schiebereglern

    2. Hallo bleicher,

      schieberegler wurden mit HTML5 eingefügt -

      hast du mal die Browserunterstützung getestet? Denn bisher "frirkel" ich mir meine Schieberegler selbst aus Divs zusammen.

      Gruß, Jürgen

      1. Hallo bleicher,

        schieberegler wurden mit HTML5 eingefügt -

        hast du mal die Browserunterstützung getestet? Denn bisher "frirkel" ich mir meine Schieberegler selbst aus Divs zusammen.

        Gruß, Jürgen

        Hm, ich denke, dadurch scheidet html5 aus, dank für den Hinweis.

        Kennt jemand von euch eventuiell einen frei erhältlichen, einfachen Schieberegler? Ich hatte letzten einen in einer JS Bibliothjek gefunden, dieser gibt mir allerdings keine Werte zurück.

        1. Hallo hmm,

          Kennt jemand von euch eventuiell einen frei erhältlichen, einfachen Schieberegler?

          wenn du dich mit Javascript auskennst, kannst du meinen mal ausprobieren. Allerdings ist die einzige Doku der Quelltext :(.

          http://www.j-berkemeier.de/Fouriersynthese.html

          var vslide = function(ele,id,wmin,wmax,startwert,cbstart,cbmove,cbstop) {

          ele: Element, in das der Schieber soll
          id:  Identifier, wird an die Callbackfunktionen übergeben
          wmin: kleinster Wert
          wmax: größter Wert
          startwert: Startwert bei Erzeugung
          cbstart: wird bei Mousedown auf Schieber aufgerufen
          cbmove: wird beim Schieben aufgerufen
          cbstop: wird bei Mouseup

          Aufruf z.B. mit

          slider = JB.getElementsBy...  
          for(var i=0;i<nkoeff;i++) as[i] = new vslide(slider[i+1],i,0,1,0.5,null,null,sl_stop);
          

          Gruß, Jürgen

          1. danke, vielleicht bekomme ich damit weiter (auch wenn ich kein Fan der Fourieranalyse bin :-)).

            es hat sich noch ein Problem aufgetan:

            bisher kann ich meine gesetzte Checkbox verschieben, leider funktioniert das einfügen neuer Checkboxen nicht:

            neu[i] = document.createElement(document.getElementById("check"));

            wird in einer schleife gefüllt

            var Ausgabebereich = document.getElementById("form");

            Ausgabebereich.appendChild(neu[2]);

            liefert allerdings kein ergibnis (neu[2] enthält aber ein object)

            <form name="form1" id=form action="">
            <input type="checkbox" id="check" name="checks" value="1" onclick="">

            anstelle der form könnte man auch andere objekte nehmen, hauptsache ich habe erstmal mehr checkboxen auf dem Bildschirm.

            Ausgabebereich.appendChild(neu[2]); liefert anscheinend kein Resultat

            1. Hallo,

              danke, vielleicht bekomme ich damit weiter (auch wenn ich kein Fan der Fourieranalyse bin :-)).

              och, sie hat durchaus ihre Anwendungsbereiche ...

              neu[i] = document.createElement(document.getElementById("check"));

              Was ist das? Ich habe den Eindruck, du hast die Methode createElement() nicht verstanden. Sie bekommt den Elementnamen für das neu zu erzeugende Element als Argument. Du übergibst stettdessen eine Referenz auf ein bereits vorhandenes Element des gewünschten Typs. Das ist nicht Sinn der Sache. Hast du mal überprüft, ob du so überhaupt ein gültiges Elementobjekt bekommst? Ich erwarte eher einen null-Wert.

              Ausgabebereich.appendChild(neu[2]);
              liefert allerdings kein ergibnis (neu[2] enthält aber ein object)

              Wie hast du das festgestellt?

              <form name="form1" id=form action="">

              Tu dir einen Gefallen und setze Attributwerte *grundsätzlich* in Anführungszeichen, auch wenn HTML in bestimmten Fällen erlaubt, sie wegzulassen.

              So long,
               Martin

              --
              why the heck do you jerk think, that wir ein doppelposting nicht bemerken, wenn you zwischendurch the sprache wechselst?
                (wahsaga)
              Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
              1. Ich habe das mit dem Objekt über Alert geprüft, jetzt bekomme ich mit

                neu[i] = document.createElement("input");  
                

                die gewünschten Felder, allerdings als Input. Jetzt versuche ich gerade aus diesen Inputfeldern Checkboxen zu machen. Dafür müsste ich dann den Typ der Inputfelder anpassen.

                1. Ich habe das mit dem Objekt über Alert geprüft, jetzt bekomme ich mit

                  neu[i] = document.createElement("input");

                  die gewünschten Felder, allerdings als Input. Jetzt versuche ich gerade aus diesen Inputfeldern Checkboxen zu machen. Dafür müsste ich dann den Typ der Inputfelder anpassen.

                  was per

                  neu[i] = document.createElement("input");
                  var attribute = document.createAttribute("type");
                  attribute.nodeValue="checkbox";
                  neu[i].setAttributeNode(attribute);

                  geklappt hat.

                  Danke für die Hilfe, manchmal brauch ich einen kleinen Denkanstoß :)

                  1. Hallo,

                    Jetzt versuche ich gerade aus diesen Inputfeldern Checkboxen zu machen. Dafür müsste ich dann den Typ der Inputfelder anpassen.

                    ja, und auch wenn du eine Lösung gefunden hast ...

                    neu[i] = document.createElement("input");
                    var attribute = document.createAttribute("type");
                    attribute.nodeValue="checkbox";
                    neu[i].setAttributeNode(attribute);

                    ... würde ich es nicht so umständlich machen. Anstatt Attribute zu setzen, kann man dem neu erzeugten Objekt auch gleich die Element-Eigenschaften anhängen. Also einfach so:

                       neu[i] = document.createElement("input")  
                       neu[i].type  = "checkbox";  
                       neu[i].value = "Versandkosten";  
                       neu[i].id    = "checkbox-vk";
                    

                    Ich weiß nicht, wie es bei den aktuellen Browsern um die Verträglichkeit bestellt ist; ältere Versionen des IE haben aber bei der Verwendung von setAttribute() gern mal rumgezickt. Die direkte Zuweisung von Eigenschaften ist dagegen kein Problem.

                    Danke für die Hilfe, manchmal brauch ich einen kleinen Denkanstoß :)

                    Ich weiß, und manchmal sieht man den Wald vor lauter Bäumen nicht. ;-)

                    Ciao,
                     Martin

                    --
                    F: Was macht ein Offizier, der in der Nase bohrt?
                    A: Er holt das Letzte aus sich heraus.
                    Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(