acid: multiselect übertragen

hallo,

ich möchte die ausgewählten werte einer multiselect auswahlliste an den server übertragen.

allerdings ist im $_POST nur der unterste selectierte wert eingetragen.

was muss ich machen, damit im $_POST alle ausgewählten werte einer liste stehen? oder was hat das multiselect sonst noch für einen sinn wenn die einzelnen werte nicht zum server übertragen werden?

p.s.
auch kann ich nicht ermitteln welcher submit button (habe mehrere) gedrückt wurde.

  1. Ahoi acid,

    allerdings ist im $_POST nur der unterste selectierte wert eingetragen.

    gibt dem <select> mal name="select[]" dann solltest du alle gewählten bekommen.

    p.s.
    auch kann ich nicht ermitteln welcher submit button (habe mehrere) gedrückt wurde.

    gib den submit-buttons auch namen.

    ein
    echo "<pre>";
    print_r($_POST);
    echo "</pre>";
    sollte dir weiterhelfen.

    MfG

    --
    Alle Angaben wie immer ohne Gewähr
    PPPS: ich trinke gerne ab und an mal eine tote Tante.
  2. Hi acid,

    Hast du dir schon mal angeschaut, was für Daten überhaupt reinkommen? Als dir $_POST schon mal mit print_r() ausgeben lassen? Ein <pre> davor, macht das ganze noch übersichtlicher.

    Und deinen Buttons hast du schon einen Namen gegeben, oder? (mir dem Attribut name)

    MfG, Dennis.

    --
    Mein SelfCode: ie:{ fl:( br:> va:) ls:[ fo:) rl:( n4:# ss:) de:] js:| ch:{ sh:| mo:} zu:|
    Die Stoßstange ist aller Laster Anfang! (Häfft)
  3. echo $begrüßung;

    Die richtigen Tipps wurden schon genannt. Vielleicht zum tiefergehenden Verständnis noch ein paar Erläuterungen.

    ich möchte die ausgewählten werte einer multiselect auswahlliste an den server übertragen.

    Das werden sie. Wenn du dir mit einem geeigneten Tool den HTTP-Verkehr ansieht, wirst du sehen, dass alle Daten übertragen werden -- allerdings alle mit dem gleichen Namen.

    Ein echo $HTTP_RAW_POST_DATA; sollte es auch tun [*]

    allerdings ist im $_POST nur der unterste selectierte wert eingetragen.

    Ja, hier überschreibt ein nachfolgender aufgrund des gleichen Namens einen vorhergehenden Wert.

    was muss ich machen, damit im $_POST alle ausgewählten werte einer liste stehen?

    Wie bereits gesagt, ein [] an den Namen anhängen und PHP schreibt ein Array statt eines einzelnen Strings ins $_POST.

    oder was hat das multiselect sonst noch für einen sinn wenn die einzelnen werte nicht zum server übertragen werden?

    siehe oben.

    echo "$verabschiedung $name";

    [*] ggf. muss in der Konfiguration noch die Option always_populate_raw_post_data eingeschaltet werden.