Auswahlliste füllen aus Array

  • Ich möchte eine Auswahlliste aus einem Array füllen.

    Dafür "füttere" ich das Array zu Testzwecken "von Hand" einfach mal mit den 12 Monaten.

    Später soll dies mit Daten aus einer Datenbank passieren.


    Ich füttere also:

    Code
    $monate = array(1=>"Januar", 2=>"Februar", 3=>"März", 4=>"April", 5=>"Mai", 6=>"Juni", 7=>"Juli", 8=>"August", 9=>"September", 10=>"Oktober", 11=>"November", 12=>"Dezember");

    anschliessend zähle ich:

    Code
    $zaehlen = count($monate);

    $zaehlen per print ausgegeben spuckt mir auch 12 aus.


    wenn ich mir daraus aber nun eine Auswahlliste generiere

    PHP
    <select name="monate">
    <?php for ($i = 1; $i < $zaehlen; $i++) echo "<option value=\"$i\">$monate[$i]</option>"; ?>
    </select>

    zeigt mir diese nur Januar bis November an.:/

    Irgendwie steh ich da grade auf'm Schlauch.

    Sollte so doch funktionieren. Oder?||

  • Wenn ich da so mache zeigt er mir das richtig an.Nur ob man das so macht weiß ich auch nicht genau.Wäre shön wenn sich dazu och einer meldet weil ich das auch gerne wissen würde.

    PHP
    <?php
    $monate = array("Januar", "Februar", "M&auml;rz", "April", "Mai", "Juni", "Juli", "August","September", "Oktober","November","Dezember"); 
    $zaehlen = count($monate);
    echo "<select name='monate'>";
     for ($i = 0; $i < $zaehlen; $i++){ 
          echo "<option value=\"$monate[$i]\">$monate[$i]</option>"; 
    }
    echo "</select>";
    
    ?>
  • hab's wohl selber hingefummelt8o


    mit

    PHP
    <?php
    $monate = array(0=>"Januar", 1=>"Februar", 2=>"M&auml;rz", 3=>"April", 4=>"Mai", 5=>"Juni", 6=>"Juli", 7=>"August", 8=>"September", 9=>"Oktober", 10=>"November", 11=>"Dezember");
    $zaehlen = count($monate);
    ?>
    <select name="month">
    <?php for ($i = 0; $i < $zaehlen; $i++) echo "<option value=\"$i\">$monate[$i]</option>"; ?>
    </select>

    funktionierts:S


    klar hört der bei November auf wenn Dezember 12 ist und da steht

    Code
    $i < $zaehlen

    :wacko:

  • Wenn ich da so mache zeigt er mir das richtig an.Nur ob man das so macht weiß ich auch nicht genau.Wäre shön wenn sich dazu och einer meldet weil ich das auch gerne wissen würde.

    PHP
    <?php
    $monate = array("Januar", "Februar", "M&auml;rz", "April", "Mai", "Juni", "Juli", "August","September", "Oktober","November","Dezember"); 
    $zaehlen = count($monate);
    echo "<select name='monate'>";
     for ($i = 0; $i < $zaehlen; $i++){ 
          echo "<option value=\"$monate[$i]\">$monate[$i]</option>"; 
    }
    echo "</select>";
    
    ?>

    Ist wohl letztendlich das gleiche wie bei meinem zweiten Versuch.

    So wie du das Array füllst, fängt er, soweit ich weiss, automatisch bei Januar mit 0 an.

    Aber wäre schon schön wenn einer der Cracks den halbwissenden da auf die Sprünge helfen könnte 8o8)

  • Es gibt auch die Möglichkeit das über die locales zu machen, darüber bieten manche Datumsfunktionen die Möglichkeit, solche Angaben in der Regionalsprache auszugeben.


    Aber um bei dem Array zu bleiben, ist das noch ein Tick einfacher umsetzbar:

    PHP
    <?php
    $aMonths = ['Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember'];
    
    foreach ( $aMonths as $index => $month )
        echo '<option value="' . $index . '">' . $month . '</option>';
  • Es gibt auch die Möglichkeit das über die locales zu machen, darüber bieten manche Datumsfunktionen die Möglichkeit, solche Angaben in der Regionalsprache auszugeben.


    Aber um bei dem Array zu bleiben, ist das noch ein Tick einfacher umsetzbar:

    PHP
    <?php
    $aMonths = ['Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember'];
    
    foreach ( $aMonths as $index => $month )
        echo '<option value="' . $index . '">' . $month . '</option>';

    Eine Lösung die mir gefällt. Danke dafür.


    Mir gings dabei zwar weniger um Datumsfunktionen. Die Monate hatte ich da nur mal reingepackt, um ein wenig "rumzutesten".

    Wie oben schon kurz erwähnt, soll es dabei später um diverse Daten aus ner Datenbank gehen.

    Eher gings mir darum, wie stelle ich es an, um das Ganze so "elegant" wie möglich zu lösen. Ja, einfach auch darum, für die Zukunkt dazu zu lernen.8o


    Aber dein Vorschlag ist letztendlich ja auch auf jedes andere Array anzuwenden.:thumbup:

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!