Affenformular und <select>

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Affenformular und <select>

    Hallo

    Ich benutze das sogen. Affenformular. Das läuft soweit alles bestens. Hier ein funktionierender Ausschnitt.
    PHP-Code:
    <?php
    $valid 
    true;
    function 
    fehlermeldung($meldung) {
       
    ?>
       <font color="#ff0000"><?php print nl2br($meldung?></font><?php
    }
    function 
    pruefvorname($wert) {
       
    $meldung "";
       if (
    strlen($wert) < 2)
          
    $meldung .= "Vorname nicht korekt.\n";
          return 
    $meldung;
    }
    if (isset(
    $_REQUEST["vorname"])) {
       
    $error["vorname"] = pruefvorname($_REQUEST["vorname"]);
       if (
    $error["vorname"] != "")
          
    $valid false;
    }
    ?>
    <form action="<?php print $_SERVER["PHP_SELF"]; ?>">
    <input name="vorname" type="text" value="<?php print htmlspecialchars($_REQUEST["vorname"]); ?>"><br>
            <?php if ($error["vorname"] != "")
            print 
    fehlermeldung($error["vorname"]); ?>

    <input type="submit" name="ausfuehren" value="ausfuehren">
    </form>
    Jedoch bin ich jetzt an einen Punkt gekommen bei dem ich mich schon seit längerem im Kreis drehe. Konkret heißt das mit dem select Feld und seinem drop down menü.
    PHP-Code:
    <select name="anrede" value="<?php print htmlspecialchars($_REQUEST["anrede"]); ?>">
        <option value="Herr">Herr</option>
        <option value="Frau">Frau</option></select>
    Das Problem liegt daran, dass hier immer wieder auf den ersten Wert "Herr" zurückgesprungen wird. Anstatt bei Auswahl von Frau in diesem zu bleiben.
    Hat jemand von Euch das schon mal hinbekommen? Mit einer Funktion ist das mit Sicherheit machbar. Bis jetzt war ich aber immer nur auf dem Holzweg.

    Danke im Voraus
    jay-ar

  • #2
    Wie kann man Checkboxen verarbeiten?

    -- war blödsinn
    Zuletzt geändert von 3DMax; 25.07.2006, 06:52.

    Kommentar


    • #3
      PHP-Code:
      echo '<select name="anrede">';
      switch(
      $_POST['anrede']){
          case 
      'Herr':
              echo 
      '<option value="Herr" selected="selected">Herr</option>
              <option value="Frau">Frau</option></select>'
      ;
          break;
          case 
      'Frau':
              echo 
      '<option value="Herr">Herr</option>
              <option value="Frau" selected="selected">Frau</option></select>'
      ;
          break;

      Meinst du so was in der Richtung ?

      Gruss

      tobi
      Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

      [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
      Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

      Kommentar


      • #4
        Ja, die Richtung ist es.
        Danke schon mal.

        Kommentar


        • #5
          also ich leg mir in dem fall immer ein array mit den options an

          PHP-Code:

          $options 
          = array('Herr' => 'Herr',
                                     
          'Frau' => 'Frau');
          echo 
          '<select name="anrede">';
          foreach (
          $options as $value => $text) {
                   if (
          $_REQUEST['anrede'] == $value) {
                           echo 
          '<option value="'.$value.'" selected="selected">'.$text.'</option>';
                  }
                  else {
                           echo 
          '<option value="'.$value.'">'.$text.'</option>';
                  }

          meiner meinung nach die bequemste lösung, vor allem wenn man mehr wie 2 einträge in der selectbox hat.

          Kommentar


          • #6
            Ich habe mich für den Lösungsansatz von Markus entschieden, da dieser einfach beliebig erweiterbar ist.

            Wie sagte mein alter Informatik Lehrer schon: "Kaum macht man es richtig, funktioniert's".

            Vielen Dank Euch allen

            Kommentar

            Lädt...
            X