index eine radio-elements auslesen

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

  • #16
    dass du die Radio-Buttons mit deiner Schleife mit onClick-EventHandler versorgen willst
    das habe ich ja auch gemacht . nur die sache mit dem direkten auslesen des indizes des geklickten radio-elements klappt es nicht.

    gruß
    peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #17
      in dem Moment, wo du auf das Ement klickst, steht this für dieses Element, daher verstehe ich nicht ganz, was du mit dem Index willst? Denn über this kannst du direkt auf das Element zugreifen.

      Kommentar


      • #18
        das ist ein wenig kompliziert. ich habe mehrere radio-gruppen mit einer identischen zahl an elementen. nun hat jedes radio-element mit identischem index den selben wert wie die anderen, also in etwa so:
        PHP-Code:
        <input type="radio" name="bla_1" value="A1" />
        <
        input type="radio" name="bla_1" value="B2" />
        <
        input type="radio" name="bla_1" value="C3" />

        <
        input type="radio" name="blubb_1" value="A1" />
        <
        input type="radio" name="blubb_1" value="B2" />
        <
        input type="radio" name="blubb_1" value="C3" />

        <
        input type="radio" name="blubber_1" value="A1" />
        <
        input type="radio" name="blubber_1" value="B2" />
        <
        input type="radio" name="blubber_1" value="C3" /> 
        nun muss ich zum beispiel einem abgleich aller elemente mit dem index 1 machen, also
        PHP-Code:
        <input type="radio" name="bla_1" value="B2" />
        <
        input type="radio" name="blubb_1" value="B2" />
        <
        input type="radio" name="blubber_1" value="B2" /> 
        es gibt aber pro radio-gruppe noch zusätzliche radio-elemente mit völlig unterschiedlichen werten, also in etwa so:
        PHP-Code:
        <input type="radio" name="bla_2" value="1" />
        <
        input type="radio" name="bla_2" value="2" />
        <
        input type="radio" name="bla_2" value="3" />

        <
        input type="radio" name="blubb_2" value="4" />
        <
        input type="radio" name="blubb_2" value="5" />
        <
        input type="radio" name="blubb_2" value="6" />

        <
        input type="radio" name="blubber_2" value="7" />
        <
        input type="radio" name="blubber_2" value="8" />
        <
        input type="radio" name="blubber_2" value="9" /> 
        und da ich keine schleifen einsetzen will, benötige ich bei den _1-Radios den index des angeklickten elements, um direkt auf die zusätzlichen radio-elemente zugreifen zu zu können, also
        PHP-Code:
        <input type="radio" name="bla_2" value="2" />
        <
        input type="radio" name="blubb_2" value="5" />
        <
        input type="radio" name="blubber_2" value="8" /> 
        verstanden? allerdings ist die sachen noch um einiges größer. ich rede hier von einer unbekannten zahl an _1 elementen und etwa 10 weitere radio-gruppen pro _1-element. das ganze benötige ich für eine ajax-geschichte. und da da zeit enorm wichtig ist, versuche ich jedwede schleife einzusparen, wenn möglich.

        gruß
        peter
        Zuletzt geändert von Kropff; 06.03.2008, 20:23.
        Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
        Meine Seite

        Kommentar


        • #19
          Versuch mal
          PHP-Code:
          var myIndex// myIndex ist global
          var radios document.getElementsByTagName('input');
          for (
          0radios.lengthi++)
          {
            
          document.getElementsByTagName('input')[i].onclick = function ()
            {
              
          myIndex i;
              
          alert(document.getElementByName('bla_2')[myIndex].value ' = ' +
                      
          document.getElementByName('blubb_2')[myIndex].value ' = ' +
                      
          document.getElementByName('blubber_2')[myIndex].value);
             }

          Kommentar


          • #20
            PHP-Code:
            myIndex i
            nee, geht natürlich nicht, da sich i bei jeder radio-gruppe hochzählt. ich muss aber pro(!) gruppe den aktuellen index des angeklickten elements ermitteln.

            gruß
            peter
            Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
            Meine Seite

            Kommentar


            • #21
              Original geschrieben von Kropff

              nee, geht natürlich nicht, da sich i bei jeder radio-gruppe hochzählt. ich muss aber pro(!) gruppe den aktuellen index des angeklickten elements ermitteln.
              Klar, war doof von mir. Aber du kannst die Handler-Implementierung so umbauen, dass es dann passt, z.B.

              PHP-Code:

              var myIndex// global
              var i;
              var 
              j;
              for (
              i=1i<=den_max_index_des_Radios_namensi++)
              {
                 for (
              j=0j<document.getElementByName('bla_'+i).lengthj++) {
                    
              document.getElementByName('bla_'+i)[j].onclick = function()
                    {
                        
              myIndex j;
                        
              alert....;
                     }
                 }
                 for (
              j=0j<document.getElementByName('blub_'+i).lengthj++) {
                    
              document.getElementByName('bla_'+i)[j].onclick = function()
                    {
                        
              myIndex j;
                        
              alert....;
                     }
                 }
                 ...

              so etwa ... das muss möglich sein

              Kommentar


              • #22
                mensch, kümmer dich um deine kinder und nicht um mich (schöne grüße an die blagen).
                PHP-Code:
                for (j=0j<document.getElementByName('bla_'+i).lengthj++) 
                das muss möglich sein
                genau das wollte ich aber vermeiden, leider gibt es dafür offenbar keine lösung. ist halt javacript

                wir sehen uns am 12. bei de hesse

                gruß
                peter
                Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                Meine Seite

                Kommentar


                • #23
                  Was spricht gegen meine Lösung? Oder hab ich was verpasst?

                  Kommentar


                  • #24
                    Original geschrieben von PHP-Desaster
                    Oder hab ich was verpasst?
                    ja. einiges
                    lösung 1: var str ist unbekannt
                    lösung 2: value brauche ich nicht, sondern den index

                    allerdings glaube ich mittlerweile, dass es ohne schleife garnichts geht. trotzdem danke.

                    peter
                    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                    Meine Seite

                    Kommentar


                    • #25
                      Ist mehr oder weniger Pseudocode, aber du musst die Dinger halt überhaupt erstmal in Gruppen einsortieren, weil DOM kennt sowas nicht.

                      PHP-Code:
                      var radiogroups = {};
                      var 
                      radios document.getElementsByTagName('input');
                      var 
                      name '';
                      for (var 
                      0inputs.length; ++i) {
                          
                      name inputs[i].name;
                          if (
                      radiogroups[name] == undefined)
                              
                      radiogroups[name] = 0;
                          else
                              ++
                      radiogroups[name];
                          
                      inputs[i].indexInRadioGroup radiogroups[name];
                          
                      inputs[i].onclick = function() { alert(this.indexInRadioGroup); }

                      hopka.net!

                      Kommentar


                      • #26
                        aber du musst die Dinger halt überhaupt erstmal in Gruppen einsortieren
                        schau ich mir mal morgen früh an (inkl. deines ersten ansatzes) wenn mein hirn nicht mehr qualmt.
                        , weil DOM kennt sowas nicht.
                        und da liegt der hase im pfeffer.

                        gruß
                        peter
                        Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                        Meine Seite

                        Kommentar


                        • #27
                          Ich trau mich ja fast nicht, etwas zur Materie hier beizutragen, zumal ich ja auch nicht genau den Hintergrund deines Formulars kenne. Ist es denn dynamisch generiert, oder fest und wie häufig wird es sich ändern?

                          Denn spontan ist mir die Idee gekommen, wenn du einen Index für deine Radiobuttons brauchst, kannst du ihn dir doch in den Radiobutton implementieren, z.B. in das Value-Tag, und dann mittels split() auslesen.

                          Denn du schreibst ja

                          ich rede hier von einer unbekannten zahl an _1 elementen und etwa 10 weitere radio-gruppen pro _1-element
                          also gehe ich von einem dynamischen Formular aus. Dann musst du den Index ja nicht mal selber tippen, sondern kannst das ja dann PHP überlassen.

                          Kommentar


                          • #28
                            Was spricht dagegen dafür die "id" zu misbrauchen?

                            Indem du z. B. die ID über name + index zusammensetzt und im Falle des Klicks mit einer RegEx ermittelst ... der Zugriff auf die anderen Options erfolgt dann über document.getElementById('andereoption' + idx) ...
                            carpe noctem

                            [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
                            [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

                            Kommentar

                            Lädt...
                            X