2016-08-13 4 views
-1

Wie kann ich ein DropDown mit dem Wert des letzten Jahres (2016) als ausgewählten Standard füllen?Wählen Sie Dynamischer Wert aus Dropdown mit PHP

<?php 
 
\t $last_year = date ("Y"); 
 
\t print "<select>"; 
 
\t for($i = 2004; $i <= $last_year; $i++) { 
 
\t \t echo "<option selected=\"$last_year\" value=\"$i\">$i</option>\n"; 
 
\t }; 
 
\t print "</select>"; 
 
?>

Vielen Dank!

+0

ich ähnliche Anforderung und Lösung in untenstehenden Link gefunden. http://stackoverflow.com/questions/34206981/php-loop-for-year-dropdown –

+0

Hinweis: "Echo" verwendet ein Zeichen weniger als dann "print" (mehr Belastung für Ihre Finger). Sie können die Unterschiede in diesem Q & A http://stackoverflow.com/questions/1647322/whats-the-difference-between-echo-print-and-print-r-in-php und http://stackoverflow.com/ sehen questions/7094118/reference-comparison-phps-print-and-echo - Wenn Sie "drucken", was Sie wirklich verwenden möchten, desto mehr Leistung für Sie. –

Antwort

2
<?php 
    $last_year = date ("Y"); 
    print "<select>"; 
    for($i = 2004; $i <= $last_year; $i++) { 
     $selected = ($last_year == $i) ? 'selected="selected"' : ''; 
     echo "<option $selected value=\"$i\">$i</option>\n"; 
    } 
    print "</select>"; 
    ?> 

Wenn ich dich richtig verstanden habe, dann sollte dies für dich arbeiten. Was Sie getan haben, war, jedes Jahr statt nur das letzte auszuwählen.

+0

Nur als Referenz können Sie gelöschte Antworten bearbeiten und dann wiederherstellen, anstatt zweimal zu antworten – RiggsFolly

+0

Danke, aber ikr, versehentlich auf die falsche Schaltfläche geklickt. Ich brainfart ^.^ –

+1

LOL, ok kein Problem – RiggsFolly

1

einen Vergleich in der Schleife wie dies zu tun:

for($i = 2004; $i <= $last_year; $i++) { 
    if($i == $last_year){ 
     $sel = 'selected=selected'; 
    } else { 
     $sel = ''; 
    } 
    echo "<option value='$i' $sel>$i</option>\n"; 
}; 
+0

Sie sollten nicht null zuweisen, wenn es nicht das richtige Jahr ist, machen Sie einfach eine leere Zeichenfolge, um Fehler zu vermeiden –

+0

I ' Ich habe es seit Jahren ohne Probleme gemacht. – Dave

+1

@Dave In anderen Teil bearbeiten Sie diese "Null" -Wert auf einen anderen Wert, für die sichere Code-Behandlung, ich akzeptiere, dass sonst Bedingung wird nicht vergeben, aber für die Code-Qualität und zu vermeiden Einbruch in unconditional Szenario, zuweisen leerer Wert. Danke –

Verwandte Themen