30. april 2006 - 19:32
Der er
9 kommentarer og 1 løsning
Vis fra nuværende tid i select bokse
Hey eksperte.. Jeg har lige nu nedenstående tidsting: <? echo "<select name='startdato' class='dateoption'>"; // Start Dato $month = Array(); $month[1] = "Januar"; $month[2] = "Februar"; $month[3] = "Marts"; $month[4] = "April"; $month[5] = "Maj"; $month[6] = "Juni"; $month[7] = "Juli"; $month[8] = "August"; $month[9] = "September"; $month[10] = "Oktober"; $month[11] = "November"; $month[12] = "December"; for($i = 1; $i < 32; $i++) { $checked = ($i == date("d")) ? " checked" : ""; echo "<option value=".$i.$checked.">".$i."</option>"; } echo "</select>"; echo " / <select name='startmonth' class='dateoption'>"; for($i = 1; $i < 13; $i++) { $checked = ($i == date("m")) ? " checked" : ""; echo "<option value=".$i.$checked.">".$month[$i]."</option>"; } echo "</select>"; echo " - <select name='startyear' class='dateoption'>"; for($i = 2006; $i < 2012; $i++) { $checked = ($i == date("Y")) ? " checked" : ""; echo "<option value=".$i.$checked.">".$i."</option>"; } echo "</select>"; echo " Kl.: <select name='starthour' class='dateoption'>"; for($i = 0; $i < 25; $i++) { if(strlen($i) == 1) $i = "0".$i; echo "<option value=".$i.">".$i."</option>"; } echo "</select> : "; echo "<select name='startminut' class='dateoption'>"; for($i = 0; $i < 60; $i++) { if(strlen($i) == 1) $i = "0".$i; echo "<option value=".$i.">".$i."</option>"; } echo "</select>"; ?> </td></tr> <tr><td>Sluttid:</td><td> <? echo "<select name='slutdato' class='dateoption'>"; for($i = 1; $i < 32; $i++) { $checked = ($i == date("d")) ? " checked" : ""; echo "<option value=".$i.$checked.">".$i."</option>"; } echo "</select>"; echo " / <select name='slutmonth' class='dateoption'>"; for($i = 1; $i < 13; $i++) { $checked = ($i == date("m")) ? " checked" : ""; echo "<option value=".$i.$checked.">".$month[$i]."</option>"; } echo "</select>"; echo " - <select name='slutyear' class='dateoption'>"; for($i = 2006; $i < 2012; $i++) { $checked = ($i == date("Y")) ? " checked" : ""; echo "<option value=".$i.$checked.">".$i."</option>"; } echo "</select>"; echo " Kl.: <select name='sluthour' class='dateoption'>"; for($i = 0; $i < 25; $i++) { if(strlen($i) == 1) $i = "0".$i; echo "<option value=".$i.">".$i."</option>"; } echo "</select> : "; echo "<select name='slutminut' class='dateoption'>"; for($i = 0; $i < 60; $i++) { if(strlen($i) == 1) $i = "0".$i; echo "<option value=".$i.">".$i."</option>"; } echo "</select>"; ?> Jeg vil gerne have det lavet så man ikke kan vælge en dato der ligger før dagen idag.. Altså tidligere datoer skal slet ikke komme frem i selectboksne.. Og så må den naturligvis gerne være lavet så man hele tiden kan vælge 2 måneder længere frem end den dato man er på lige nu.. Håber i forstår..
Annonceindlæg fra Infor
For det første, skal du nok erstatte " checked " med " selected ". I stedet for dine for løkker til måneder og år kan du bruge: echo " / <select name='startmonth' class='dateoption'>"; $i=date("n"); echo "<option value=".$i." selected>".$month[$i]."</option>"; $i = ($i==12 ? 1 : $i+1); echo "<option value=".$i.">".$month[$i]."</option>"; $i = ($i==12 ? 1 : $i+1); echo "<option value=".$i.">".$month[$i]."</option>"; echo "</select>"; $i=date("Y"); echo " - <select name='startyear' class='dateoption'>"; echo "<option value=".$i. " selected >".$i."</option>"; if (date("n")>11) echo "<option value=".($i+1). " >".($i+1)."</option>"; echo "</select>"; Man kan så diskutere om man overhovedet skal lave en select til årstallet, hvis man ikke skal kunne vælge mellem forskellige årstal (altså hvis man ikke er i november eller december)
ups: if (date("n")>11) skulle selvfølgelig have været: if (date("n")>=11)
// Dag for($i=1;$i<=31;$i++) { if($i<10) $i="0".$i; echo "<option value='".$i."'".(if($select_day==$i?" selected='selected'?"").">".$i."</option>"; // Måned for($i=1;$i<=12;$i++) { if($i<10) $i="0".$i; echo "<option value='".$i."'".(if($select_month==$i?" selected='selected'?"").">".$i." (".date("M",mktime(0,0,0,$i,1,date("Y",NOW()))).")</option>"; } // Årstal $aar_tilbage = 5; // Der skal kunne vælges fra 5 år tilbage i tiden $arr_frem = 5; // Hvor mange år frem i tiden der skal kunne vælges for($i=date("Y",NOW())-$aar_tilbage;$i<date("Y",NOW())+$arr_frem;$i++) { echo "<option value='".$i."'".(if($select_year==$i?" selected='selected'?"").">".$i."</option>"; }
(if($select_day==$i?" ændres lige til ($select_...==$i?" alle 3 steder :)
Der er nogen galt med din kode martin1000 der kommer noget parse error også selvom jeg fjerner IF sætningen, som de skrev.
Alt kode jeg skriver er ikke testet hehe... Men nu har jeg renskrevet det, og rettet diverse fejl. <?php // Dag echo "<select name='select_day'>"; for($i=1;$i<=31;$i++) { if($i<10) $i="0".$i; echo "<option value='".$i."'".($select_day==$i?" selected='selected'":"").">".$i."</option>"; } echo "</select>"; echo "<select name='select_month'>"; // Måned for($i=1;$i<=12;$i++) { if($i<10) $i="0".$i; echo "<option value='".$i."'".($select_month==$i?" selected='selected'":"").">".$i." (".date("M",mktime(0,0,0,$i,1,date("Y",time()))).")</option>"; } echo "</select>"; // Årstal $aar_tilbage = 5; // Der skal kunne vælges fra 5 år tilbage i tiden $arr_frem = 5; // Hvor mange år frem i tiden der skal kunne vælges echo "<select name='select_year'>"; for($i=date("Y",time())-$aar_tilbage;$i<date("Y",time())+$arr_frem;$i++) { echo "<option value='".$i."'".($select_year==$i?" selected='selected'":"").">".$i."</option>"; } echo "</select>"; ?>
beklager den lange svartid.. Skulle lige gennem nogle eksamener først.. Jeg ser lige på det snarest :)
Hov glemte helt denne tråd igen :S Smid et svar for points martin1000
11. november 2007 - 20:41
#9
smider du et svar???
16. marts 2008 - 18:46
#10
lukker af her..
Vi tilbyder markedets bedste kurser inden for webudvikling