Problem mit $()-Zugriff bei Prototype

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

  • Problem mit $()-Zugriff bei Prototype

    Hallo zusammen, ich hab ein Problem mit PrototypeJS bei Zugriff auf Radio-Buttons. Und zwar möchte ich einen Inhalt aus einer Datenbank auslesen mit der angegebenen ID (via PHP, kein Problem). Jetzt wollte ich das ganze mal mit dem Prototyp-JS probieren. Ich habe 2 Div-Boxen, in der einen stehen die zur Verfügung stehenden Werte mit Radio-Buttons und in der anderen soll dann das Ergebnis aus der Datenbank drinstehen. Mein Problem ist jetzt, dass wenn ich einen Radio-Button auswähle, immer der Value des allerersten genommen wird. Hier mal mein Code des Formulars:
    PHP-Code:
    <div id="values" style="float:left;width:25%;margin-top:20px;
    border:dashed 1px;height:400px;overflow:auto;">
                <form>  
                    <input type="button" style="width:50%;color:#ffffff;
                            background-color:#000000;" 
                            value="anzeigen" id="butAusw">
                    <?
                    foreach($values as $value)
                    {
                        echo "<br>";
                        echo "<input type='radio' id='RADIO' name='RADIO' 
                                    style='width:10px;' value=".$value["ID"].">";
                        echo $value["ID"];
                    }
                    ?>
                    
                   </form>
            </div>
    und hier die Anzeige meines Event-Abfangers von Prototype:
    Code:
     
     new Event.observe
         (
             'butAusw',
             'click',  
             function(event)
             {
                 $('loading').show();
                  new Ajax.Request('test2.php',
                  {
                    method:'get',
                    parameters: {input: $('RADIO').value},
                    onSuccess: function(nom, json)
                    {
                        //nom ist der nomale response text
                        //json der automatische jsoin text
                            $('ANZEIGE').innerHTML = json.answer;
                            $('loading').hide();
                    },
                       onFailure: function()
                       { 
                       	alert('Fehler bei Ajax Request') 
                       }
                  });
             }, 
             false
         );
    Hat jemand ne Idee, wieso der immer die Value des ersten Radio´s ausgibt und nicht die des ausgewählten?????

  • #2
    Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

    Kommentar


    • #3
      Re: Problem mit $()-Zugriff bei Prototype

      PHP-Code:
                       foreach($values as $value)
                      {
                          echo 
      "<br>";
                          echo 
      "<input type='radio' id='RADIO' name='RADIO' 
                                      style='width:10px;' value="
      .$value["ID"].">";
                          echo 
      $value["ID"];
                      } 
      Du weißt schon, dass deine Radiobuttons alle die gleiche ID haben?

      Kommentar


      • #4
        ja, das hab ich gemacht, weil ich mit $('RADIO') auf die radio-buttons zugreifen wollte, und $() nichts anderes ist als document.getElementById(). und ich hab gedacht dass ich so an die radios dran komme

        Kommentar


        • #5
          Wenn du mehrmals die gleiche ID hast, wie soll dass den bitte funktionieren??
          Was du suchst, ist wahrscheinlich name, wo du dann ein Array deiner Radios zurückbekommst. Kannst du auch mittels Selektor machen.
          Code:
          var radios = $$( '[name="RADIO"]' );

          Kommentar


          • #6
            ich will aber kein array mit allen radios, ich will das selektierte radio haben, und so wie du es geschrieben hast, muss ich erst noch ne überprüfung machen, welches der vorkommenden radios selektiert ist, aber das will ich ja irgendwie verhindern

            Kommentar


            • #7
              hab was gefunden, was funktioniert, obwohl ich immer ide selbe id benutze und zwar:
              Code:
               
              var the_Button = $('FORM').getInputs('radio', 'RADIO').find(function(r)
              {return r.checked}) ;
              danke für die Hilfe

              Kommentar


              • #8
                getInputs(formElement [, type [, name]]) -> array
                Es wird nach dem Namen 'RADIO' gesucht, ist also das gleiche, wie ich geschrieben habe, musst nur eben überprüfen, ob das Radioelement selektiert ist!
                Code:
                $$( '[name="RADIO"]' ).find(function(r){return r.checked}) ;

                Kommentar

                Lädt...
                X