oli69: variable als value

Hallo,

habe ein kleines Problem und komme einfach nicht auf die Lösung.
Gegeben ist eine Eingabeform (dataset) mit etlichen input feldern die mit 1 beginnend durchnummeriert (aber dynamisch sind - also die Anzahl ist nicht fix -> cells) sind.
In einer Schleife will ich nun diese Werte auslesen:
for(c = 1; c <= cells; c++) alert(dataset.xxx.value);
Wie bekomme ich es hin das xxx durch c ersetzt wird????

  1. variable als value

    Karl-Franz zu Ferdinand von und bei Dümpelshofen

    Guten Abend.

    for(c = 1; c <= cells; c++) alert(dataset.xxx.value);
    Wie bekomme ich es hin das xxx durch c ersetzt wird????

    dataset[c].value

    Gute Nacht.

    1. Guten Abend.

      for(c = 1; c <= cells; c++) alert(dataset.xxx.value);
      Wie bekomme ich es hin das xxx durch c ersetzt wird????

      dataset[c].value

      Gute Nacht.

      Funktioniert leider nicht - sowas hatte ich auch schon probiert allerdings als
      dataset.[c].value
      Ich glaube das Problem liegt woanders: Die Felder die ausgelesen werden sollen werden von einer function erstellt und dann in einem div mit document.getElementById('daten').innerHTML = ... eingefügt.

      1. Hallo,

        Ich glaube das Problem liegt woanders: Die Felder die ausgelesen werden sollen werden von einer function erstellt und dann in einem div mit document.getElementById('daten').innerHTML = ... eingefügt.

        Das sollte kein Problem sein. Zeig mal bitte ein reduziertes Beispiel.

        Zugriff auf Formularelemente geht so:
        http://de.selfhtml.org/javascript/objekte/forms.htm
        http://de.selfhtml.org/javascript/objekte/elements.htm

        Beispiel:

        <form id="myform">  
        <p>  
        <input type="text" name="foo" value="1">  
        <input type="text" name="bar" value="2">  
        <input type="text" name="qux" value="3">  
        </p>  
        </form>
        
        var form = document.getElementById('myForm');  
        // Alternativ: var form = document.forms.myform; – kommt auf dasselbe heraus  
        var elements = form.elements;  
        for (var i = 0, l = elements.length; i < l; i++) {  
          var element = elements[i];  
          alert(element.name + ': ' + element.value);  
        }
        

        Mathias

        1. Hallo,

          Ich glaube das Problem liegt woanders: Die Felder die ausgelesen werden sollen werden von einer function erstellt und dann in einem div mit document.getElementById('daten').innerHTML = ... eingefügt.

          Das sollte kein Problem sein. Zeig mal bitte ein reduziertes Beispiel.

          Zugriff auf Formularelemente geht so:
          http://de.selfhtml.org/javascript/objekte/forms.htm
          http://de.selfhtml.org/javascript/objekte/elements.htm

          Beispiel:

          <form id="myform">

          <p>
          <input type="text" name="foo" value="1">
          <input type="text" name="bar" value="2">
          <input type="text" name="qux" value="3">
          </p>
          </form>

          
          >   
          > ~~~javascript
          
          var form = document.getElementById('myForm');  
          
          > // Alternativ: var form = document.forms.myform; – kommt auf dasselbe heraus  
          > var elements = form.elements;  
          > for (var i = 0, l = elements.length; i < l; i++) {  
          >   var element = elements[i];  
          >   alert(element.name + ': ' + element.value);  
          > }
          
          

          Mathias

          also die erste funktion erstellt es:
          nr = laufende zellennummer
          for(c = 1; c < dat.length; c++)
           {
           datx = dat[c].split('#');
           aus += '<tr>';
           for(x = 0; x < datx.length; x++)
            {
            aus += '<td><input name=' + nr + ' value="' + datx[x] + '"></td>';
            nr++
            }
           aus += '</tr>';
           }

          ... stark vereinfacht ... danach

          document.getElementById('daten').innerHTML = '<table><form name='dataset' <tr><td colspan=100> <input value=Modellieren type=button onclick=fx()> </td> </tr>  <tr>' + aus + '</form></table>';

          so in etwa, hoffe habe jetzt keine tippfehler gemacht.
          das anzeigen funktioniert auch in fx() wird auch aufgerufen...nur halt kein zugriff auf die daten.

          1. Hi,

            document.getElementById('daten').innerHTML = '<table><form name='dataset' <tr><td colspan=100> <input value=Modellieren type=button onclick=fx()> </td> </tr>  <tr>' + aus + '</form></table>';

            das produziert ungültiges HTML. Ein form-Element darf nicht Kind von table sein; es muss entweder die Tabelle vollständig umschließen oder vollständig innerhalb einer Zelle sein.

            Ob das mit deinem aktuellen Problem zu tun hat, kann ich nicht sagen, aber ich will es nicht ausschließen. Kontrolliere mal (z.B. mit Firebug), wie das dadurch erzeugte DOM wirklich aussieht.

            Ciao,
             Martin

            --
            Wenn Zeit das Kostbarste ist, was wir haben, dann ist Zeitverschwendung die größte aller Verschwendungen.
              (Benjamin Franklin, amerikanischer Tüftler und Politiker)
            Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
            1. Hi,

              document.getElementById('daten').innerHTML = '<table><form name='dataset' <tr><td colspan=100> <input value=Modellieren type=button onclick=fx()> </td> </tr>  <tr>' + aus + '</form></table>';

              das produziert ungültiges HTML. Ein form-Element darf nicht Kind von table sein; es muss entweder die Tabelle vollständig umschließen oder vollständig innerhalb einer Zelle sein.

              Ob das mit deinem aktuellen Problem zu tun hat, kann ich nicht sagen, aber ich will es nicht ausschließen. Kontrolliere mal (z.B. mit Firebug), wie das dadurch erzeugte DOM wirklich aussieht.

              Ciao,
              Martin

              Hallo Martin,

              das habe ich schon probiert - allerdings verwende ich das so auch in vielen anderen Skripten die alle laufen.

              1. Om nah hoo pez nyeetz, oli69!

                Jetzt vergleichst du bitte mal deine Beiträge mit denen der anderen. Mit Sicherheit fällt dir dann auf, dass Vollzitate hier weder notwendig noch erwünscht sind. Bitte zitiere nur das, worauf du dich gerade beziehst. Danke.

                Matthias

                --
                Der Unterschied zwischen Java und JavaScript ist größer als der zwischen Boll und Bollerwagen.

          2. Hallo,

            Okay. Und was ist nun deine Frage? Was willst du erreichen und was funktioniert nicht mit dem Code, den du hast?

            nur halt kein zugriff auf die daten.

            Warum nicht? Sorge dafür, dass die Variable mit den Daten an der gewünschten Stelle verüfgbar ist.

            Mathias