Ankündigung

Einklappen
Keine Ankündigung bisher.

Umständliches Pull-Down Menü?

Einklappen

Neue Werbung 2019

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

  • Umständliches Pull-Down Menü?

    Hallo,

    ich habe eine kurze Frage. Ich habe einen Codeschnipsel geschrieben der, wenn ich das
    Formular aufrufe automatisch das Pull-Down Menü die vorherige Einstellung anzeigt.

    Nun erscheint mir der Code selbst sehr umständlich. Deshalb meine Frage, gibt es eine Möglichkeit diesen einfacher zu gestalten?

    PHP-Code:

     <?php
         
    echo "<select class='form-control' id='pj_status' name='pj_status' required>";
         if (
    $pj_status == '') {echo "<option value='' selected></option>";} 
         else {echo 
    "<option value=''></option>";}

         if (
    $pj_status == 'geplant') {echo "<option value='geplant' selected>geplant</option>";} 
         else {echo 
    "<option value='geplant'>geplant</option>";}

         if (
    $pj_status == 'in Arbeit') {echo "<option value='in Arbeit' selected>in Arbeit</option>";} 
         else {echo 
    "<option value='in Arbeit'>in Arbeit</option>";}

         if (
    $pj_status == 'im Test') {echo "<option value='im Test' selected>im Test</option>";} 
         else {echo 
    "<option value='im Test'>im Test</option>";}

         if (
    $pj_status == 'abgeschlossen') {echo "<option value='abgeschlossen' selected>abgeschlossen</option>";} 
         else {echo 
    "<option value='abgeschlossen'>abgeschlossen</option>";}


       echo 
    "</select>";
       
    ?>

  • #2
    https://php-de.github.io/jumpto/ausw...misch-erzeugen
    The string "()()" is not palindrom but the String "())(" is.

    Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
    PHP.de Wissenssammlung | Kein Support per PN

    Kommentar


    • #3
      Aus meiner Wühlkiste:
      PHP-Code:
      $createSelectBox = function ($name, array $options$selectedValue null) {
          
      $htmlEncode = function ($value) {
              return 
      htmlspecialchars($valueENT_COMPAT ENT_HTML5'UTF-8');
          };

          
      $html '<select name="' $htmlEncode($name) . '">';
          foreach (
      $options as $optionValue => $optionName) {
              
      $html .= '<option';
              if (
      $selectedValue == $optionValue) {
                  
      $html .= ' selected="selected"';
              }
              
      $html .= ' value="' $htmlEncode($optionValue) . '">';
              
      $html .= $htmlEncode($optionName);
              
      $html .= '</option>';
          }
          
      $html .= '</select>';

          return 
      $html;
      };

      $options = [
          
      => 'foo',
          
      => 'bar',
          
      => 'baz'
      ];

      echo 
      $createSelectBox('selectfield'$options2); 

      PHP-Code:
      <?php

      function selectbox($name, array $options$selected null, array $attributes = array()) {
          
      $html '<select name="' $name '"';
          foreach (
      $attributes as $name => $value) {
              
      $html .= ' ' $name '="' $value '"';
          }
          
      $html .= '>';
          foreach (
      $options as $value => $option) {
              
      $html .= '<option value="' $value '"';
              if (
      $value == $selected) {
                  
      $html .= ' selected="selected"';
              }
              
      $html .= '>' htmlspecialchars($option) . '</option>';
          }
          
      $html .= '</select>';
          return 
      $html;
      }




      $options = array(
          
      => '',
          
      => 'option1',
          
      => 'option2',
          
      => 'option3'
      );

      $selected = isset($_POST['foobar']) ? (int) $_POST['foobar'] : 0;

      ?>
      <form action="" method="post">
          <?php echo selectbox('foobar'$options$selected, array('style' => 'width:150px')); ?>
          <input type="submit" />
      </form>

      Kommentar


      • #4
        Hallo,

        ich habe hierzu noch eine Frage!
        wie kann ich eine „Select“-Anweisung erzeugen, wenn ich den Value und den Namen aus der Datenbank holen möchte...

        <option value="Datenbankwert 1">Datenbankwert2</option>

        Kommentar


        • #5
          eine „Select“-Anweisung?
          Keine Ahnung, wir kennen doch deine DB gar nicht.

          Select in HTML ist ein ELEMENT bitte gewöhne dir die richtigen Begriffe an.

          Kommentar


          • #6
            Zitat von DKSystem Beitrag anzeigen
            wie kann ich eine „Select“-Anweisung erzeugen, wenn ich den Value und den Namen aus der Datenbank holen möchte...

            <option value="Datenbankwert 1">Datenbankwert2</option>
            Wenn du PDO nutzt geht das ganz einfach mit PDO::FETCH_KEY_PAIR.
            Beispiel aus meiner Kramkiste:
            PHP-Code:
            $db = new PDO('sqlite:selectopt.sqlite');

            $sql "SELECT id ,name FROM car";
            $stmt $db -> query($sql);
            $options $stmt->fetchAll(PDO::FETCH_KEY_PAIR);

            //
            echo html::select('s1',$optionstrue,$_POST); 
            Fürs Verständnis reicht es, das es html::select() ähnlich macht wie es hellbringer gezeigt hat, nur das gleich das $_POST mit verarbeitet wird.
            Weitere Beispiele hier.

            Edit: $_POST ist hier nur zu Demonstrationszwecken als Parameter gesetzt. In der Praxis kommt dort ein Array rein welches aus einer Validator-Klasse kommt.

            Kommentar

            Lädt...
            X