frank0837: <select> Auswertung

Hallo Forum,
meine Auswahlliste wird dynamisch aus DB-Satzen (mehrere Felder/Satz generiert. Funktioniert.

Jetzt die Auswertung:
Zitat aus dem Archiv:
"....hier: $_POST["log_art"]) befindet sich der Wert (value-Attribut) des gewählten <option>-Elements...."

Bei mir steht in $_POST["dichter"] das schöne Wort Array. Das ist richitg und ich habe keine Ahnug, wie ich dieses array (aut_nam, aut_vornam...) mit PHP nun auswerten kann.

Wie macht man das?
Ich werde auch ganz brav sein und Euch nicht mehr nerven! (ähem, heute..)

Frank

  1. Ganz einfach:

    mit $feldname erhälst du den Wert aus der <option value>

    Grüße
    Hase

  2. Hallo frank,

    meine Auswahlliste wird dynamisch aus DB-Satzen (mehrere Felder/Satz generiert. Funktioniert.

    wie sieht denn die Liste aus wenn sie im Browser ankommt?

    Bei mir steht in $_POST["dichter"] das schöne Wort Array. Das ist richitg und ich habe keine Ahnug, wie ich dieses array (aut_nam, aut_vornam...) mit PHP nun auswerten kann.

    ich weiß nicht, warum du ein Array erhälst (hast du ein multiselect?), aber versuchs mal mit $_POST["dichter"][0] (bzw. für weitere Elemente 1,2,3,.. usw. einsetzten), oder du schreibst erst $dichter = $_POST["dichter"] und dann $dichter[0] usw.

    Ich werde auch ganz brav sein und Euch nicht mehr nerven! (ähem, heute..)

    :-)

    Grüße aus Nürnberg
    Tobias

    1. Hallo,
      leider funktioniert es nicht. Im Browser steht eine ganz normale Auswahlliste mit Zeilen, die sich aus mehreren Feldern zusammensetzen. Die Zeilen kann man markieren, wie sich das gehört

      So erstelle ich die Select und Option Tags:
      ...
      vorher DB-Abfrage
      ....
      print "<select style="width:400px" name="dichter" size="1">";
      while ($row= mysql_fetch_row($erg))                              # Ausgabe der
            {                                                          # vorhandenen
             echo "<option value='$row'>"                              # Autorennamen
             .$row[1].", "
             .$row[2].", *".$row[3]."</option>";         # gibt eine schöen Auswahlliste
            }
      print "</td></tr>";
      print "</select>";

      So z.B. versuche ich an den Option-value zu kommen:

      if ($_POST[Anzeigen] == "Autor")
          {
           $arr = $_POST["dichter"];
           print "Autor: ".$arr[2];                       # oder 0, 1,...
           phpinfo(INFO_VARIABLES);
          }
      Das ist der input-Tag:

      <input type="Submit" name="Anzeigen" value="Autor">

      Ausgegeben wird: Autor: r    #genau so, keine Ahnung, wo das 'r' herkommt.

      Die INFO_VARIABLES weisen "dichter" als array aus.

      Frust!!!

      Frank

      1. Hallo frank,

        echo "<option value='$row'>"

        da haben wir den Schuldigen schon - $row ist natürlich ein Array und deswegen steht als value 'Array' drin - und das wird auch übergeben. Du musst natürlich noch übergeben, welches Element des Arrays du brauchst.

        $arr = $_POST["dichter"];

        $_POST["dichter"] ist nicht wirklich eine Array, da steht nur "Array" drin (s.o.)

        print "Autor: ".$arr[2];

        mit $arr[2] greifst du auf den 3.Buchstaben der Variablen $arr aus, und der ist eben ein 'r'.

        Grüße aus Nürnberg
        Tobias

        1. Tobias»»

          echo "<option value='$row'>" 
          ... Du musst natürlich noch übergeben, welches Element des Arrays du brauchst.

          Ich war der Meinung, ich bekomme das Array $row als Ganzes übergeben. Man meint ja nur...

          Es läuft schon sehr viel besser. Jetzt werde ich noch versuchen, den übergebenen Parameter-String wieder aufzulösen und dann mache ich erst mal Schluss.

          Danke

          Frank