27. december 2007 - 11:13
Der er
21 kommentarer og 1 løsning
Fødselsdag dropbox
Hey Jeg skal lave en dropdown med fødselsdag hvor det er muligt at vælge dag, måned og år. Jeg har allerede lavet mine dag og måned bokse, men mangler bare år. Sagen er den at man i år kun skal kunne vælge fra 17 år tilbage til 87 år tilbage i tiden. Jeg er i tvivl om hvordan jeg skal lave det. Nogen der har et foreslag?
Annonceindlæg tema
Forsvar & beredskab
Cybersikkerhed, realtidsdata og robuste it-systemer er blevet fundamentet for moderne forsvar.
27. december 2007 - 11:24
#1
Jeg tror, det må være noget i stil med: echo "<select>"; for ($counter=date(Y)-17;$counter<date(Y)-87;$counter--){ echo "<option>"; echo $counter; echo "</option>"; } echo "</select>";
27. december 2007 - 11:38
#2
Det ser faktisk ret fornuftigt ud :) Men hvilken variabel skal jeg smide hvis jeg vil give den en value?
27. december 2007 - 11:43
#3
Nå ja. Hvis value skal være år (hvilket jeg går ud fra), skal det være: echo "<select>"; for ($counter=date(Y)-17;$counter<date(Y)-87;$counter--){ echo "<option value='$counter'>"; echo $counter; echo "</option>"; } echo "</select>";
27. december 2007 - 11:45
#4
Selve scriptet virker desværre ikke er jeg nødt til at sige..
27. december 2007 - 11:49
#5
Uh, men der er så mange måder, et script ikke kan virke på. =) Jeg kan umuligt rette det, hvis du ikke fortæller mig lidt mere. Virkede det før? Hvilken fejl får du? (Fejlmeddelelser er din ven!) Og kan jeg evt. se det et sted på nettet?
27. december 2007 - 11:54
#6
lige pt ser scriptet sådan ud: <select name="year" class="small"> <option value="">Vælg år</option> <?php for ($counter=date(Y)-17;$counter<date(Y)-87;$counter--){ echo "<option value='$counter'"; echo ($birthday[0] == $counter ? "selected" : ""); echo ">"; echo "$counter"; echo "</option>"; } ?> </select> Men der bliver ikke skrevet noget til siden fra PHP'en..
27. december 2007 - 11:55
#7
Der er desværre ikke mulighed for at det kan ses på nettet, og der er ingen fejlmeddelese, bare en tom linie i kildekoden. Mine to andre dropboxes virker stadig fint :)
27. december 2007 - 13:53
#8
Nu ser scriptet sådan ud: $minage = date('Y') - 17; $maxage = date('Y') - 87; for ($i=$minage; $i<$maxage; $i--) { $sel = ''; if ($birthday[0] == $i) {$sel=' selected ';} echo '<option value="'.$i.'" '.$sel.' >'.$i.'</option>'; } Fandt det på php.net, og omskrev en smule, men det virker stadig ikke.. og der er stadig ingen fejlmeddelese i browseren, eller i kildekoden..
27. december 2007 - 15:55
#9
Prøv at skrive hele din kode her så.
27. december 2007 - 16:27
#10
<?php session_start(); include("personal.php"); $birthday = explode("-", "$person->birthday"); ?> <form name"personalData" enctype="multipart/form-data" action="<?=$_SERVER['REQUEST_URI']?>" onSubmit="validatePersonelForm(this);return false;" method="post"> <h2>Person oplysninger</h2> <div class="act"> <div class="inputRow inputRowFirst">Fornavn *<br/><input type="text" class="row" value="<?=addslashes($person->firstName)?>" name="firstName"/></div> <div class="inputRow">Mellemnavn(e)<br/><input type="text" class="row" value="<?=addslashes($person->middleName)?>" name="middleName"/></div> <div class="inputRow">Efternavn *<br/><input type="text" class="row" value="<?=addslashes($person->lastName)?>" name="lastName"/></div> <div class="inputRow inputRowFirst">Adresse *<br/><input type="text" class="large" value="<?=$person->adress?>" name="adress"/></div> <div class="inputRow inputRowFirst">Post Nr *<br/><input type="text" class="small" value="<?=$person->zipCode?>" name="zipCode"/></div> <div class="inputRow">By *<br/><input type="text" class="double" value="<?=$person->city?>" name="city"/></div> <div class="inputRow inputRowFirst">Fødselsdag *</div> <div class="inputRow inputRowFirst normal"> <select name="day" class="small"> <option value="">Vælg dag</option> <option value="1" <?php echo ($birthday[2] == 1 ? "selected" : "") ?>>1</option> <option value="2" <?php echo ($birthday[2] == 2 ? "selected" : "") ?>>2</option> ... </select> <select name="month" class="small"> <option value="">Vælg måned</option> <option value="1" <?php echo ($birthday[1] == 1 ? "selected" : "") ?>>Januar</option> <option value="2" <?php echo ($birthday[1] == 2 ? "selected" : "") ?>>Februar</option> ... </select> <select name="year" class="small"> <option value="">Vælg år</option> <?php $minage = date('Y') - 17; $maxage = date('Y') - 87; for ($i=$minage; $i<$maxage; $i--) { $sel = ''; if ($birthday[0] == $i) {$sel=' selected ';} echo '<option value="'.$i.'" '.$sel.' >'.$i.'</option>'; } ?> </select> Har tilladt mig at strippe koden for det meste unødvendige kode.
27. december 2007 - 16:54
#11
Står der så kun "vælg år" i selecten?
27. december 2007 - 16:59
#12
Ja
27. december 2007 - 17:01
#13
Jamen så må vi jo debugge. Prøv at udskrive minage og maxage ligeså snart de er blevet sat - dvs. uden for løkken.
27. december 2007 - 17:45
#14
Ingen fejl der. Så må fejlen jo ligge i for-løkken?
27. december 2007 - 17:55
#15
Ingen fejl? Returnerer den så de korrekte årstal?
27. december 2007 - 17:56
#16
Muligvis skal: $i<$maxage være: $i>$maxage ja :)
27. december 2007 - 17:56
#17
Jep.. Har prøvet med en while-løkke i stedet for en for-løkke, men det giver det samme resultat.
27. december 2007 - 18:01
#18
Og du har prøvet: <?php $minage = date('Y') - 17; $maxage = date('Y') - 87; for ($i=$minage; $i>$maxage; $i--) { $sel = ''; if ($birthday[0] == $i) {$sel=' selected ';} echo '<option value="'.$i.'" '.$sel.' >'.$i.'</option>'; } ?> ?? Muligvis bli'r if-sætningen ikke opfyldt, så prøv også: <?php $minage = date('Y') - 17; $maxage = date('Y') - 87; for ($i=$minage; $i>$maxage; $i--) { $sel = ''; echo 'Det virker!'; if ($birthday[0] == $i) {$sel=' selected ';} echo '<option value="'.$i.'" '.$sel.' >'.$i.'</option>'; } ?>
27. december 2007 - 18:05
#19
Åh.. Du er en gud! - Nu virker det.. Tusind tak!.. Smid et svar, og så skal du få lidt knaldperler for din hjælp :)
27. december 2007 - 18:11
#20
;)
27. december 2007 - 19:17
#21
Takker.
27. december 2007 - 19:30
#22
Selv tak :)
Vi tilbyder markedets bedste kurser inden for webudvikling