06. maj 2007 - 12:40Der er
2 kommentarer og 1 løsning
Problemer med Autodate
Hey folkens.
Jeg sidder og skal lave noget dato halløj via 3 dropdowns (dag, måned og år). Det er meningen når man klikker sig ind på siden, skal felterne automatisk stå på dags dato.
Det vil den dog p.t. ikke.
Jeg har lavet scriptet sådan, (kort udklip)
<option <? if ($month == "January") {echo "SELECTED";} else if (date("F") == "January" && !$heading_error || !$description_error) {echo "SELECTED";} ?>>January</option>
De 2 variabler er validering af inputfelter, og den første if sætning er til at huske indtastet data hvis valideringen nu ikke skulle gå igennem.
Det er min else if der driller.. Den virker fint på årstal, bare ikke på dage og måneder, hvor den automatisk starter nede i bunden af dropdown'en. (31 december)
Der er svært at sige hvad det endelige problem er uden den komplette kode. Men når den automatisk starter nederst, er det så fordi den skriver SELECTED i alle felterne?
Jeg mistænker lidt: || !$description_error
for at lave fejlen. Oversat til dansk betyder det jo at hvis variablen $description_error ikke er sat skal den altid skrive SELECTED. Jeg ville mene koden i stedet skulle være: date("F") == "January" && !$heading_error && !$description_error
En anden ting er at det er smartere at gemme date("F") i en variabel og så referere til den i stedet. Det er spild af ressourcer at lade php regne datoen ud ved hver enkelt måned, når det er den samme værdi der bruges hver gang.
Det virkede faktisk bare at skifte || ud med &&. Så mange tak for det (:
Ja jeg valgte ikke at lave det med variabler, da jeg synes det var irriterende at det skulle ligge og fylde, men det er selvfølgelig smartere, så retter det nok :)
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.