Jouhni: <select>-Return mit Mehrfachauswahl?

Hi ihrs,

ich habe ein Formular mit einem <select>-Feld, in dem ich mit dem Parameter 'multiple' eine Mehrfachauswahl ermögliche:

Quellcode:
<select name="var" size="7" multiple><option>...</option></select>

Probleme bereitet mir der Wert in $var. Wähle ich nur ein Element aus der Liste aus, wird dieses korrekt als String zurückgegeben. Wähle ich mehr als ein Element aus, wird immer nur das letzte ausgewählte in der Liste zurückgegeben. Der Rückgabetyp ist jedesmal ein String und nicht, wie zu erwarten, ein Array.

Kann mir jemand helfen?

Danke,
Jouhni

  1. Hey...

    <select name="var[]" size="7" multiple><option>...</option></select>

    damit wird der Wert der ausgewählt wurde oder die Werte, an dein Script gesendet.

    In dem Script musst du dann die Werte mit dem Befehl

    foreach ($var as $test) {echo("<B>$test</B>");}

    umwandel weil PHP sonst nicht auf die Variable zugreifen kann...probiers mal...

    MFG

    Vanel

    1. Hey...

      <select name="var[]" size="7" multiple><option>...</option></select>

      damit wird der Wert der ausgewählt wurde oder die Werte, an dein Script gesendet.

      In dem Script musst du dann die Werte mit dem Befehl

      foreach ($var as $test) {echo("<B>$test</B>");}

      umwandel weil PHP sonst nicht auf die Variable zugreifen kann...probiers mal...

      Achtung:
      Dies Skripte funktionieren nur wenn Register_GLOBALS ON sind!
      Dieses ist seid geraumer Zeit aber nicht mehr die Standardeinstellung.
      Benutze beim Zugriffe auf die Variable $_POST['var'] oder  $_GET['var']

      TomIRL

    2. Moin

      <select name="var[]" size="7" multiple><option>...</option></select>

      damit wird der Wert der ausgewählt wurde oder die Werte, an dein Script gesendet.

      Die möglichen Werte!

      In dem Script musst du dann die Werte mit dem Befehl

      Sterben muß er Du schreibst ist sachlich nicht richtig.
       über
      $var=$_POST['var'];
      komme ich an die Variabele:
      ich könnte auch ganz einfach eine Schlüssel zuweisen:
      nnämlich so:
      $var[1] und die kann ich mir selbstverständlich anzeigen.

      foreach ($var as $test) {echo("<B>$test</B>");}

      umwandel weil PHP sonst nicht auf die Variable zugreifen kann...probiers mal...

      MFG

      TomIRL

  2. Hello,

    ich habe ein Formular mit einem <select>-Feld, in dem ich mit dem Parameter 'multiple' eine Mehrfachauswahl ermögliche:

    Quellcode:
    <select name="var" size="7" multiple><option>...</option></select>

    Probleme bereitet mir der Wert in $var. Wähle ich nur ein Element aus der Liste aus, wird dieses korrekt als String zurückgegeben. Wähle ich mehr als ein Element aus, wird immer nur das letzte ausgewählte in der Liste zurückgegeben. Der Rückgabetyp ist jedesmal ein String und nicht, wie zu erwarten, ein Array.

    PHP legt für das Script nur dann Arrays der gleichnamigen Parameter an, wenn es dazu aufgefordert wurde, anderenfalls wird ein gleichnamiger Parameter durch seinen "Nachfolger" wieder überschrieben.

    <select name="var[]" size="7" multiple><option>...</option></select>
       <option value="param1">Hier tanzt der Bär</option>
       <option value="param2">Keine M&ause in der Tasche</option>
       ...
     </select>

    Die ausgewählten Values landen dann z.B. in $_POST["var"][0] und
    $_POST["var"][1].

    Wenn Du im HTML-Script noch Index-Namen für das Array vergibst, darfst Du _dort_ keine Häkchen setzen, wohl aber später im PHP-Script.

    <input type="text" name="text[vorname]">

    landet also z.B. in $_POST["text"]["vorname"]

    Liebe Grüße aus http://www.braunschweig.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen