Stefan: Listenfelder auslesen?

Hallo Forumer!!

Ich kriege es leider nicht hin, über PHP ein Listenfeld auszulesen.
Das müßte doch auch über die HTTP_POST_VARS gehen, wie bei Texteingabefeldern? Ich habe also folgenden HTML-Code:

-------------------------------------------------------

<select name="leistung" id="leistung" class="form">
<option value="option1" selected>Option 1</option>
<option value="option2">Option 2</option>
<option value="option3">Option 3</option>
</select>

-------------------------------------------------------

Nun kann ich ja sicher über das "name"-Attribut bei select den Wert "Leisung" auslesen. Also so:

----------------------------------------------
$leistung = $HTTP_POST_VARS['leistung'];
----------------------------------------------

Aber wie lese ich jetzt den Value der "option"-Felder aus?

Kann mir bitte jemand auf die Sprünge helfen?

Danke und Grüße!!!

Stefan

  1. Hallo Forumer!!

    Ich kriege es leider nicht hin, über PHP ein Listenfeld auszulesen.
    Das müßte doch auch über die HTTP_POST_VARS gehen, wie bei Texteingabefeldern? Ich habe also folgenden HTML-Code:


    <select name="leistung" id="leistung" class="form">
    <option value="option1" selected>Option 1</option>
    <option value="option2">Option 2</option>
    <option value="option3">Option 3</option>
    </select>


    Nun kann ich ja sicher über das "name"-Attribut bei select den Wert "Leisung" auslesen. Also so:


    $leistung = $HTTP_POST_VARS['leistung'];

    Aber wie lese ich jetzt den Value der "option"-Felder aus?

    Kann mir bitte jemand auf die Sprünge helfen?

    Dein Ansatz ist richtig!
    Überprüfe doch zuerst was ankommt:

    print_r ($_POST);
    liefert Dir ein Ergebniss.
    Wenn Du dann nicht weiter weist melde Dich noch einmal.

    TomIRL

  2. Hallo Stefan,

    Das müßte doch auch über die HTTP_POST_VARS gehen, wie bei Texteingabefeldern?

    im Prinzip, ja besser ist aber $_POST statt $HTTP_POST_VARS (siehe http://www.php.net/language.variables.predefined)

    Nun kann ich ja sicher über das "name"-Attribut bei select den Wert "Leisung" auslesen.

    ?

    $leistung = $HTTP_POST_VARS['leistung'];

    dann hast du in $leistung den Wert (value) des ausgewählten Eintrages der Liste stehen (bzw. wenn register_globals auf off steht musst du $leistung = $_POST['leistung'] verwenden)

    Aber wie lese ich jetzt den Value der "option"-Felder aus?

    willst du _alle_ Werte der Felder (egal ob ausgewählt, oder nicht) auf der nächsten Seite zur Verfügung haben? - Das geht nicht, übertragen wird nur das, was auch ausgewählt ist.

    Grüße aus Nürnberg
    Tobias

    --
    Selfcode: sh:( fo:) ch:? rl:( br:< n4:& ie:% mo:| va:) de:] zu:) fl:( ss:| ls:[ js:|
    1. Hallo Tobias,

      willst du _alle_ Werte der Felder (egal ob ausgewählt, oder nicht) auf der nächsten Seite zur Verfügung haben? - Das geht nicht, übertragen wird nur das, was auch ausgewählt ist.

      Nein. Ich möchte hier nur auslesen was der User ausgewählthat. Kann ich das über $_POST machen?
      Weißt, wenn ich Texteingabefelder habe so wie hier:
      ----------------------------------------------------------
      <input name="vorname" type="text" id="vorname" size="38" maxlength="45" class="form">
      ---------------------------------------------------------

      Die kann ich ganz normal über das "name"-Attribut auslesen.
      Aber wie lesen ich das ausgewählte Listenfeld aus?
      Hier habe ich ja sowohl ein "name"-Atribut, also hier:
      ---------------------------------------------------------
      <select name="leistung" id="leistung" class="form">
      ---------------------------------------------------------

      wie auch ein "value". Also hier:
      ----------------------------------------------
      <option value="basispaket">Basis-Paket</option>
      ----------------------------------------------

      Und beides muss ich doch sicher auslesen. Aber wie?

      Danke für Deine Mühe!

      Stefan

      Grüße aus Nürnberg
      Tobias

      1. Die kann ich ganz normal über das "name"-Attribut auslesen.
        Aber wie lesen ich das ausgewählte Listenfeld aus?
        Hier habe ich ja sowohl ein "name"-Atribut, also hier:

        <select name="leistung" id="leistung" class="form">

        wie auch ein "value". Also hier:

        <option value="basispaket">Basis-Paket</option>

        Hallo Stefan,
         Du hast auch ein value bei Textfeldern!
        Der value ist der eingetragene Name.
        Das auslesen funktioniert wie von Dir geschildert.
        Lass Dir doch mal die komplette $_POST anzeigen, dann siehst Du was ankommt.
        Anders ist es wenn Du eine Mehrfachauswahl zuläst!
        Dann mußt Du dass anders machen!
        Viel Grüße TomIRL

        1. Hallo Stefan,
           Du hast auch ein value bei Textfeldern!
          Der value ist der eingetragene Name.
          Das auslesen funktioniert wie von Dir geschildert.
          Lass Dir doch mal die komplette $_POST anzeigen, dann siehst Du was ankommt.
          Anders ist es wenn Du eine Mehrfachauswahl zuläst!
          Dann mußt Du dass anders machen!
          Viel Grüße TomIRL

          Hallo Tom!

          Würde es denn dann so gehen:

          HTML:

          -----------------------------------------------
          <select name="leistung[]">
                   <option>1612</option>
                   <option>1663</option>
                   <option>1793</option>
                </select>

          -----------------------------------------------

          PHP:

          ---------------------------------------------

          <?php
               foreach ($leistung as $value)
                {
                $ausgewählt = $_POST['$value'];
                }

          ?>
          --------------------------------------------

          Danke und Viele Grüße

          Stefan

          1. Hi Stefan,
            Nö, ich male gerde mal in Deinem Code:


            <select name="leistung[]">

            geändert =>          <option value=1612>1612</option>

            <option>1663</option>
                     <option>1793</option>
                  </select>


            PHP:


            <?php
                 foreach ($leistung as $value)
                  {
                  $ausgewählt = $_POST['$value'];
                  }

            ?>

            Danke und Viele Grüße

            Dann kommt auf nach dem absenden ein Array an und das kannst Du dann  wie von Dir beschrieben auswerten.
            Überprüfe aber immer welcher Datentyp ankommt.

            Bitte TomIRL

          2. hi,

            Würde es denn dann so gehen

            warum befolgst du nicht einfach mal die tipps (komplettes $_POST-array ausgeben lassen, um zu sehen, was alles ankommt), die du hier bekommst, anstatt immer wieder nachzufragen?

            gruss,
            wahsaga

            1. warum befolgst du nicht einfach mal die tipps (komplettes $_POST-array ausgeben lassen, um zu sehen, was alles ankommt), die du hier bekommst, anstatt immer wieder nachzufragen?

              -----Stefan Münz am 18.09.----------------------------------
              "...sie zeugen weder von fachlicher noch von menschlicher Kompetenz beim Antwortenden. Besser, er haette einfach geschwiegen."
              ------------------------------------------------------------

              Gruß

              Stefan

              1. hi,

                -----Stefan Münz am 18.09.----------------------------------
                "...sie zeugen weder von fachlicher noch von menschlicher Kompetenz beim Antwortenden. Besser, er haette einfach geschwiegen."

                wenn du schon meinst, dieses posting [pref:t=57903&m=324482] zitieren zu müssen, dann bitte nicht nur die teile, die dir in den kram passen.

                "Es ist voellig korrekt, Newbies auf Fehler im Verhalten oder in ihren Anspruechen hinzuweisen."
                nichts anderes habe ich m.e. getan.
                du brauchst dich jetzt nicht hinter stefans posting als schutzschild zu verstecken, nur weil ich dich auf fehlerhaftes verhalten deinerseits hingewiesen habe.

                "Es ist aber kein Deut besser als das Vergehen, sondern macht die Sache nur schlimmer, wenn der Ton dabei total verfehlt ist."
                der ton ist m.e. nicht verfehlt - ich wollte lediglich von dir wissen, warum du es anscheinend nicht für nötig hältst, die hier bekommenen tips umzusetzen, und stattdessen mehrmals erneut nachzufragen, ob "das so richtig" ist - letzteres herauszufinden, ist definitiv deine aufgabe.

                gruss,
                wahsaga

                1. du brauchst dich jetzt nicht hinter stefans posting als schutzschild zu verstecken, nur weil ich dich auf fehlerhaftes verhalten deinerseits hingewiesen habe.

                  hallo,

                  Ich habe es nicht nötig mich hinter irgendeinem posting zu versecken. ich habe ein problem und zu diesem stehe ich. die frage ist doch vielmehr, welchen sinn und zweck du verfolgst. ganz konkret: was hat dein posting zu diesem thread (bzw. der problemstellung) beigetragen? meiner meinung nach nichts. du mischst dich ein, ohne konstruktiv zu sein. also waren deine postings in diesem thread meiner meinung nach unnötig.

                  gruss

                  stefan

                  1. hi,

                    Ich habe es nicht nötig mich hinter irgendeinem posting zu versecken. ich habe ein problem und zu diesem stehe ich.

                    du hast schon diverse tipps bekommen.

                    aber anstatt mal selber auszuprobieren, ob dies oder jenes funktioniert, fragst du hier wiederholt nach, "ist das so richtig".

                    warum bitteschön probierst du den code nicht erst einmal selber aus,bevor du nachfragst?

                    ausserdem ist es relativ sinnfrei, die frage so zu stellen.

                    keiner hier ist eine maschine, die sofort alle möglichen fehler sieht.
                    ein einfacher parse error z.b. wird am zuverlässigsten vom php-interpreter selbst gefunden - also warum fütterst du ihn nicht einfach mit dem code?

                    die frage ist doch vielmehr, welchen sinn und zweck du verfolgst. ganz konkret: was hat dein posting zu diesem thread (bzw. der problemstellung) beigetragen? meiner meinung nach nichts. du mischst dich ein, ohne konstruktiv zu sein. also waren deine postings in diesem thread meiner meinung nach unnötig.

                    was hast _du_ zu dem versuch, _dein_ problem zu lösen beigetragen, _nachdem_ du tipps bekommen hast?

                    du hättest diese ausprobieren sollen, und dich dann nochmal melden, wenn es _nicht_ zum gewünschten ergebnis führt.

                    stattdessen fragst du wiederholt nach, ob "das so richtig" sei - was, wie ich dir oben schon erklärte, m.e. weitgehend sinnfrei ist.

                    gruss,
                    wahsaga