René Landgrafe: Datumsübergabe an Smarty

Halli hallo Ihr Forumsuser =),

ich hänge momentan an folgendem Problem:

Es soll eine Auswahlliste geben, in der man das das Jahr in "YYYY" auswählen kann. Und zwar alle zwischen und inklusive dem jetzigen Datum und 2001, wobei das aktuellste Datum ganz oben stehen soll.

In der PHP Datei sieht das ganze wie folgt aus:
<snip>

$now = getdate();
$now_year = $now['year'];
$start_year = "2001";

for ($i = 0; $now_year >= $start_year; $now_year--) {
 $i++;
 $count[$i] = $now_year;
 print $count[$i]; // Zeigt nur an, ob er die Daten auch richtig ausgibt.
}
//$smarty->assign("date_year", ???);
</snip>

Sooo wie bekomme ich Smarty dazu, mir diese einzelnen Jahre in eine Auswahlliste zu packen, damit ich sie bei der späteren Datenbankabfrage wieder verwenden kann?

Um eines vorweg zunehmen: Smarty wurde bereits vorher in das Script eingebunden und andere Sachen funktionieren damit auch =)
Mir fehlt nur irgendwie der Ansatz, wie ich das umsetzen kann, und da es relativ schnell gehen muss, kann ich mich nicht darauf verlassen, dass mein "blackout" mal aussetzt.

Danke schonmal
René Landgrafe

  1. Hallo Renè,

    //$smarty->assign("date_year", ???);

    $smarty->assign ('date_years', $count);
    $smarty->assign ('date_year', $now['year']); // $now_year hast Du ja schon in der Schleife verbraten

    In Smarty:

    <select name="year">
     {html_options values=$date_years output=$date_years selected=$date_year}
    </select>

    Christian

    --
    Hast Du einen Beitrag? Nur her damit!
    http://aktuell.de.selfhtml.org/tippstricks/beitrag.htm
    SELF-Code: (http://emmanuel.dammerer.at/selfcode.html)
    sh:) fo:) ch:] rl:( br:> n4:& ie:% mo:) va:) de:] zu:) fl:( js:| ss:) ls:[
    1. Hallo Renè,

      //$smarty->assign("date_year", ???);

      $smarty->assign ('date_years', $count);
      $smarty->assign ('date_year', $now['year']); // $now_year hast Du ja schon in der Schleife verbraten

      In Smarty:

      <select name="year">
       {html_options values=$date_years output=$date_years selected=$date_year}
      </select>

      Christian

      Hallo Christian,

      danke für deine Hilfe, ich werds zur Verständnis nocheinmal _so_ probieren.

      cya
      René Landgrafe

  2. <snip>

    $now = getdate();
    $now_year = $now['year'];
    $start_year = "2001";

    for ($i = 0; $now_year >= $start_year; $now_year--) {
     $i++;
     $count[$i] = $now_year;
     print $count[$i]; // Zeigt nur an, ob er die Daten auch richtig ausgibt.
    }
    //$smarty->assign("date_year", ???);
    </snip>

    Sooo wie bekomme ich Smarty dazu, mir diese einzelnen Jahre in eine Auswahlliste zu packen, damit ich sie bei der späteren Datenbankabfrage wieder verwenden kann?

    Ahhh habs schon =(. Wiedermal an der falschen Stelle gesucht...

    Wie dem auch sei. Es geht so:

    *.php
    <snip>
    $now = getdate();
    $now_year = $now['year'];
    $start_year = "2001";

    for ($i = 0; $now_year >= $start_year; $now_year--) {
     $i++;
     $count[$i] = $now_year;
     print $count[$i]; // Zeigt nur an, ob er die Daten auch richtig ausgibt.
    }
    //$smarty->assign("date_year", $count);
    </snip>
    OK bis dahin wars nicht schwer, aber ich wusste noch nicht, wie ich das Template dazu bringe, diese Daten richtig auszugeben.

    *.tpl
    <snip>
      <select name="year">
       <!--{if $year != "" && $year != "alle"}-->
       <option><!--{$year}--></option>
       <option value="">-</option>
       <!--{/if}-->
       <option>alle</option>
       <!--{foreach from=$years item=counts}-->
       <option><!--{$counts}--></option>
       <!--{/foreach}-->
      </select>
    </snip>

    bis denn
    René Landgrafe