Jörg: Checkbox mit Prototype lesen und als Request Obj. an PHP Script

Hallo,

ich verwende in einem Formular mehrere Checkboxen die (in diesem Beispiel) die Funktionen eines Mitarbeiters beschreiben.

<input type="checkbox" name="funktion[1]" id="funktion[1]" value="A" />
<input type="checkbox" name="funktion[2]" id="funktion[2]" value="B" />
<input type="checkbox" name="funktion[3]" id="funktion[3]" value="C" />

Die Werte der Checkboxen sollen per Prototype mittels:

new Ajax.Request('script.php', {parameters: {funktion:$F('funktion')}});

an das weiterverarbeitende PHP Script übergeben werden. Das funcktioniert nicht, auch nicht mit funktion:$A('funktion').

Wie muss ich die (aktivierten) Checkboxen auslesen um die per POST Methode an mein Script zu übermitteln?

Gruß
Jörg

  1. Hi,

    <input type="checkbox" name="funktion[1]" id="funktion[1]" value="A" />
    <input type="checkbox" name="funktion[2]" id="funktion[2]" value="B" />
    <input type="checkbox" name="funktion[3]" id="funktion[3]" value="C" />
    new Ajax.Request('script.php', {parameters: {funktion:$F('funktion')}});

    ich werde nie verstehen, warum so oft angenommen wird, dass irgend eine Art von Magie plötzlich komplett unterschiedliche Namen gleich werden lässt. Die Eingabefelder haben drei (in Worten: 3) absolut verschiedene Namen, und *keiner* von denen lautet 'funktion'.

    Wie muss ich die (aktivierten) Checkboxen auslesen um die per POST Methode an mein Script zu übermitteln?

    $F('funktion[1]'), $F('funktion[2]') und $F('funktion[3]'). Mit den entsprechenden Bezeichnern im Objekt, die dann ihrerseits in Anführungszeichen stehen müssen.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:| br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Hi!

      Die Eingabefelder haben drei (in Worten: 3)

      Müde?

      off:PP

      --
      "You know that place between sleep and awake, the place where you can still remember dreaming?" (Tinkerbell)
    2. Hallo Cheatah,

      Sinn und Zweck war eigentlich daraus ein Array zu bauen das ich dann (mit welcher Prototype Syntax auch immer) als Array per POST Methode an das weiterverarbeitende Script geben kann. Das könnte auch so lauten:

      <input type="checkbox" name="funktion[]" id="funktion[]" value="A" />
      <input type="checkbox" name="funktion[]" id="funktion[]" value="B" />
      <input type="checkbox" name="funktion[]" id="funktion[]" value="C" />

      Welche Syntax (auch für die Bennneung der Checkboxen), dass war ebenfalls Gegenstand meiner Frage. Wenn Du einen besseren Vorschlag für die Bennung der Checkboxen hast, lass es mich wissen. Hintergrund ist, das die Checkboxen dynamisch aus einer DB erzeugt werden. Meine Ajax Funktion also nie weiß, wie viele Checkboxen übergeben werden. Der User im Backend hat die Möglichkeit, beliebig viele Funktionen hinzuzufügen oder zu entfernen. Folglich variiert auch die Anzahl der Checkboxen.

      Jörg

      1. Hallo

        Hintergrund ist, das die Checkboxen dynamisch aus einer DB erzeugt werden. Meine Ajax Funktion also nie weiß, wie viele Checkboxen übergeben werden. Der User im Backend hat die Möglichkeit, beliebig viele Funktionen hinzuzufügen oder zu entfernen. Folglich variiert auch die Anzahl der Checkboxen.

        Du musst hier aber unterscheiden. Die Syntax ' name="name[]"' muss benutzt werden, falls PHP zur Verarbeitung eines Formulars eingesetzt wird. Nur so weiß PHP, dass es um ein (mögliches) Array von Werten unter gleichem Namen geht, mit ' name="name"' würde nur der Wert der letzten angeklickten Checkbox von PHP angenommen.

        Für alle[1] anderen Sprachen (z.B. Perl und JavaScript) handelt es sich um verschiedene Namen, wenn Arrayindizes vorgegeben sind (z.B. name[wert] und name[wort]). Da nimmt man entweder ' name="name"' oder man muss jeden Namen einzeln ansprechen.

        [1] soweit ich das überblicken kann

        Tschö, Auge

        --
        Verschiedene Glocken läuteten in der Stadt, und jede von ihnen vertrat eine ganz persönliche Meinung darüber, wann es Mitternacht war.
        Terry Pratchett, "Wachen! Wachen!"
        Veranstaltungsdatenbank Vdb 0.3
      2. Hi,

        Welche Syntax (auch für die Bennneung der Checkboxen), dass war ebenfalls Gegenstand meiner Frage.

        Nö, war's nicht.

        Hintergrund ist, das die Checkboxen dynamisch aus einer DB erzeugt werden. Meine Ajax Funktion also nie weiß, wie viele Checkboxen übergeben werden.

        Kann ihr ja auch egal sein.
        Leute mit JavaScript-Grundwissen kennen getElementsByTagName, und wissen dass die davon gelieferte NodeList eine length-Eigenschaft hat.

        Und wer mit JavaScript-Frameworks arbeitet, sollte auch deren Möglichkeiten kennen, Element aus dem DOM per Query-Selektor zu ermitteln und zu durchlaufen.

        MfG ChrisB

        --
        “Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]