Avatar billede haolan Nybegynder
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..
Avatar billede duejensen Nybegynder
01. maj 2006 - 06:24 #1
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)
Avatar billede duejensen Nybegynder
01. maj 2006 - 06:24 #2
ups:

if (date("n")>11)

skulle selvfølgelig have været:
if (date("n")>=11)
Avatar billede martin1000ben Nybegynder
03. maj 2006 - 06:05 #3
// 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>";
}
Avatar billede martin1000ben Nybegynder
03. maj 2006 - 06:06 #4
(if($select_day==$i?"

ændres lige til ($select_...==$i?" alle 3 steder :)
Avatar billede haolan Nybegynder
03. maj 2006 - 13:30 #5
Der er nogen galt med din kode martin1000 der kommer noget parse error også selvom jeg fjerner IF sætningen, som de skrev.
Avatar billede martin1000ben Nybegynder
03. maj 2006 - 18:32 #6
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>";
?>
Avatar billede haolan Nybegynder
28. juni 2006 - 00:38 #7
beklager den lange svartid..
Skulle lige gennem nogle eksamener først..

Jeg ser lige på det snarest :)
Avatar billede haolan Nybegynder
16. maj 2007 - 08:27 #8
Hov glemte helt denne tråd igen :S

Smid et svar for points martin1000
Avatar billede haolan Nybegynder
11. november 2007 - 20:41 #9
smider du et svar???
Avatar billede haolan Nybegynder
16. marts 2008 - 18:46 #10
lukker af her..
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester