SmartyShark: Option - TAG mit PHP selektieren

Hallo,

ich habe momentan ein Problem mit dem Select-Tag :

Beispiel :

test.php

<select name=test
        id=test>
  <option></option>
  <option>Herr</option>
  <option>Frau</option>
</select>

Dieser Tag wird per POST an ein PHP-Skript gesendet zur Auswertung:

auswertung.php

$_SESSION['test'] = $_POST['test'];
header("Location: ./test.php");

Frage :

Wie kann ich das machen, damit automatisch in der Select-Box der Eintrag drinne steht der vorher ausgewählt wurde ?

Mit "value" gehts jedenfalls nicht :

<select name=test
        id=test
        value="<?php echo isset($_SESSION['test']) ?
                  $_SESSION['test'] : '';?>">
  <option></option>
  <option>Herr</option>
  <option>Frau</option>
</select>

Gruss

  1. Hallo SmartyShark.

    Wie kann ich das machen, damit automatisch in der Select-Box der Eintrag drinne steht der vorher ausgewählt wurde ?

    So zum Beispiel.

    Mit "value" gehts jedenfalls nicht :

    <select name=test
            id=test
            value="<?php echo isset($_SESSION['test']) ?
                      $_SESSION['test'] : '';?>">

    Klar, da das select-Element nicht über ein solches Attribut verfügt.

    Einen schönen Montag noch.

    Gruß, Mathias

    --
    ie:% fl:| br:< va:) ls:& fo:) rl:( n4:~ ss:) de:] js:| mo:| zu:)
    debian/rules
    1. Hallo SmartyShark.

      Wie kann ich das machen, damit automatisch in der Select-Box der Eintrag drinne steht der vorher ausgewählt wurde ?

      So zum Beispiel.

      Mit "value" gehts jedenfalls nicht :

      <select name=test
              id=test
              value="<?php echo isset($_SESSION['test']) ?
                        $_SESSION['test'] : '';?>">

      Klar, da das select-Element nicht über ein solches Attribut verfügt.

      Ok, der Thread kann geschlossen werden. Ja ich dachte mir schon das es nur diese Möglichkeit gibt über die <option> - TAGS.

      Irgendwie blöd das es kein value-Attribut gibt findet Ihr nicht ?
      Wenn man einfach sagen könnte.

      value="1" // Erstes Element des select-Tags.

      Naja schönen Montag auch an euch.
      Gruss
      SmartyShark

      1. Hallo

        Mit "value" gehts jedenfalls nicht

        Klar, da das select-Element nicht über ein solches Attribut verfügt.

        Irgendwie blöd das es kein value-Attribut gibt findet Ihr nicht ?

        Warum sollte es? Es hat weiteren Inhalt, nämlich ein <option>-Element für jeden auswählbaren Eintrag. Dieses wiederum hat ein Attribut namens 'value' und dessen Inhalt kannst du auch ermitteln und dieses <option>-Element mit dem Attribut 'selected' bzw. 'selected="selected"' (bei XHTML) kennzeichnen.

        Wo also ist das Problem?

        Tschö, Auge

        --
        Die Musik drückt aus, was nicht gesagt werden kann und worüber es unmöglich ist zu schweigen.
        (Victor Hugo)
        <dingdong /><dingdong /><toc /><toc /><toc /><shout>Florence!</shout>
        Veranstaltungsdatenbank Vdb 0.1
  2. Machs doch einfach so:

    <select name=test
            id=test
            value="<?php echo isset($_SESSION['test']) ?
                      $_SESSION['test'] : '';?>">
      <option></option>
      <option <?php if( !empty( $_POST['test'] ) && $_POST['test'] == 'Herr' ) { echo 'selected'; } ?> >Herr</option>
      <option <?php if( !empty( $_POST['test'] ) && $_POST['test'] == 'Frau' ) { echo 'selected'; } ?> >Frau</option>
    </select>

    Funktioniert und kannst du einfach immer wieder kopieren :)

    Liebe Grüße,

    Amá