romy: +PHP select multiple und POST-Vars

Hi,

ich hätte da wie immer noch ne Frage. Wenn ich eine Form mit einem Select-Feld abschicke, kommt immer der Datensatz an der selektiert ist bzw. bei mehrfachauswahl der letzte selektierte. Es wäre natürlich schon praktisch, wenn alle selektierten übergeben würden.

Wo muss ich ansetzen, liegt das an meiner Auswertung oder an der Definition des Select-Feldes?

<select name="kunde" multiple>
//einen Haufen generierte options a la
//<option value="bla"> bla </option>
</select>

ciao
romy

  1. Hallo,

    Wo muss ich ansetzen, liegt das an meiner Auswertung oder an der Definition des Select-Feldes?

    <select name="kunde" multiple>

    name="kunde[]"

    Und dann das zugehoerige Array aus den POST-Parametern fischen.

    MfG, Thomas

  2. Hi,

    Wo muss ich ansetzen, liegt das an meiner Auswertung oder an der Definition des Select-Feldes?

    es liegt an einem Konzeptfehler von PHP. Bei der Übermittlung mehrerer Werte gleichen Namens musst Du eine Nomenklatur beachten, nämlich dem Feldnamen am Ende "[]" hinzufügen.

    Cheatah

    --
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
  3. Hi,
    dass ist ja nett, ist ja auch eigentlich kein Problem, aber ich hab da zwei Funktionen, die optionsfelder hinzufügen bzw. wieder löschen, per Javascript (Intranetanwendung)

    Was mache ich jetzt mit denen?

    <script>
    function addKunde() {
    var i;
    for(i=0;i<document.kundenauswahl.kunde.length;i++) {
     if(document.kundenauswahl.kunde.options[i].selected == true) {
    NeuerEintrag = new Option(document.kundenauswahl.kunde.options[i].value,document.kundenauswahl.kunde.options[i].text,false,true);

    document.kundenauswahl.ownkunde.options[document.kundenauswahl.ownkunde.length] = NeuerEintrag;
    }
    }
    }

    function dropKunde() {
    var i;
    for(i=0;i<document.kundenauswahl.ownkunde.length;i++) {
    if(document.kundenauswahl.ownkunde.options[i].selected == true) {
    document.kundenauswahl.ownkunde.options[i] = null;
    }
    }
    }

    </script>

    ownkunde müsste ich jetzt anpassen auf ownkunde[] aber da müsste ich glaube ich alles umschreiben, bloss wie?
    Lasse ich da jetzt options weg und greife gleich mit ownkunde[i] draufzu?

    ciao
    romy

    1. Hallo,

      ownkunde müsste ich jetzt anpassen auf ownkunde[] aber da müsste ich glaube ich alles umschreiben, bloss wie?
      Lasse ich da jetzt options weg und greife gleich mit ownkunde[i] draufzu?

      document.kundenauswahl.elements["ownkunde[]"].options[i]

      MfG, Thomas

      1. Hi Thomas,

        document.kundenauswahl.elements["ownkunde[]"].options[i]

        genau das suchte ich.
        Auf die Elements wäre ich nicht gekommen, mir fällt es immer noch etwas schwer mich durch die Doku zu wühlen und nach Dingen zu suchen, wo ich nicht mal im Ansatz weiss, wie sie aussehen.

        danke und einen wunderschönen Tag

        natürlich auch für Cheatah ;)

        ciao
        romy

    2. Hallo,

      dass ist ja nett, ist ja auch eigentlich kein Problem, aber ich hab da zwei Funktionen, die optionsfelder hinzufügen bzw. wieder löschen, per Javascript (Intranetanwendung)

      Was ist ganz nett? Aber gut, daß ich die anderen Antworten auch gelesen habe. ;))

      Was mache ich jetzt mit denen?

      [...] document.kundenauswahl.kunde.length [...]

      Schreibe einfach: document.kundenauswahl['kunde[]'].length und analog für .options usw.

      Diese Möglichkeit des Zugriffs steht iirc auch irgendwo in SelfHTML. Näheres bitte ich dort nachulesen.

      ownkunde müsste ich jetzt anpassen auf ownkunde[] aber da müsste ich glaube ich alles umschreiben, bloss wie?
      Lasse ich da jetzt options weg und greife gleich mit ownkunde[i] draufzu?

      s.o.

      Gruß Alex

      --
      http://www.google.de/search?hl=de&safe=off&q=Rechtschreibung+Standart
      ss:) zu:} ls:} fo:| de:[ va:| ch:| sh:( n4:& rl:° br:& js:| ie:| fl:| mo:}