Christian: PHP Array Formularfelder (feld[]) auslesen

Hallo,

ich habe mehrere Checkboxen definiert die allsamt messageid[] heissen. Als Value wird die Nachrichten-ID übergeben.

Wie kann ich auswerten welche Elemente markiert sind?

  1. hi,

    ich habe mehrere Checkboxen definiert die allsamt messageid[] heissen. Als Value wird die Nachrichten-ID übergeben.

    Wie kann ich auswerten welche Elemente markiert sind?

    Checkbox-Werte werden nur übergeben, wenn die Checkbox markiert wurde.

    Also durchlaufe das Array, welches du erhältst [1], mittels einer Schleife - dann bekommst du alle IDs, deren Checkboxen angekreuzt waren.

    print_r() von $_POST bzw. $_GET hilft weiter, falls die Struktur noch unklar sein sollte.

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
  2. echo $begrüßung;

    ich habe mehrere Checkboxen definiert die allsamt messageid[] heissen. Als Value wird die Nachrichten-ID übergeben.
    Wie kann ich auswerten welche Elemente markiert sind?

    Möchtest du es mit Javascript auswerten, so wie es die von dir gewählte Kategorie vermuten lässt?
    elternelement.getElementsByTagName("messageid[]") liefert eine Liste der Elemente, die du mit einer passenden Schleife durchlaufen kannst. Checkboxen haben auch eine Eigenschaft checked, die angibt, ob sie markiert sind oder nicht.

    echo "$verabschiedung $name";

    1. n'abend,

      elternelement.getElementsByTagName("messageid[]") liefert eine Liste der Elemente, die du mit einer passenden Schleife durchlaufen kannst. Checkboxen haben auch eine Eigenschaft checked, die angibt, ob sie markiert sind oder nicht.

      elternelement.getElementsByTagName("messageid[]") wohl kaum...

      var inputs = document.getElementsByTagName('input');  
      for( var i=0; i < inputs.length; i++ )  
      {  
        if(inputs[i].name == 'messageid[]')  
        {  
          // ok, wir haben nun eines unserer gewünschten feldlein  
          if(inputs[i].checked)  
          {  
            // es ist sogar "gechecked"...  
            alert('juhuu, ich wurde angeklickt...');  
          }  
        }  
      }
      

      das mit document.getElementsByName('messageid[]') geht wohl im IE nicht so wie es sollte... (... oder so.. irgendwas war da jedenfalls)

      weiterhin schönen abend...

      --
      wer braucht schon großbuchstaben?
      sh:( fo:# ch:# rl:° br:> n4:& ie:{ mo:} va:) de:] zu:} fl:{ ss:? ls:[ js:|
      1. echo $begrüßung;

        elternelement.getElementsByTagName("messageid[]") liefert eine Liste der Elemente, die du mit einer passenden Schleife durchlaufen kannst.

        elternelement.getElementsByTagName("messageid[]") wohl kaum...

        Ja, gemeint hatte ich eigentlich auch getElementsByName(), also ohne "Tag". Außerdem wäre es dann eine Funktion des document-Objekts.

        das mit document.getElementsByName('messageid[]') geht wohl im IE nicht so wie es sollte... (... oder so.. irgendwas war da jedenfalls)

        SELFHTML sagt dazu nichts weiter, außer dass es ab IE 5.5 vorhanden sein soll.

        echo "$verabschiedung $name";

        1. n'abend,

          Ja, gemeint hatte ich eigentlich auch getElementsByName(), also ohne "Tag". Außerdem wäre es dann eine Funktion des document-Objekts.

          Genau. Im Gegensatz zu getElementsByTagName(), welches in jeder Node verfügbar ist, gibt es getElementsByName() nur im document-objekt.

          das mit document.getElementsByName('messageid[]') geht wohl im IE nicht so wie es sollte... (... oder so.. irgendwas war da jedenfalls)

          SELFHTML sagt dazu nichts weiter, außer dass es ab IE 5.5 vorhanden sein soll.

          Wenn ich mich recht erinnere, dann war das sonderbare Verhalten auch nicht dokumentiert. Jedenfalls vermeide ich seit diesem Zwischenfall getElementsByName() und habe keine weiteren Probleme mehr.

          weiterhin schönen abend...

          --
          wer braucht schon großbuchstaben?
          sh:( fo:# ch:# rl:° br:> n4:& ie:{ mo:} va:) de:] zu:} fl:{ ss:? ls:[ js:|