14. december 2002 - 15:51Der er
8 kommentarer og 2 løsninger
Reservations-script
Hej
Jeg har et script, som smider ikke-reserverede datoer ind i en dropdown-box.
Der er bare den begrænsning i scriptet, at 1 dato kun kan reserveres en gang. Nu er det imidlertid blevet sådan i "virkelighedens verden", at en dato godt kan reserveres 2 gange, hvis de 30 kommende datoer allerede er blevet reserveret. Hvis dette er tilfældet, altså at de næste 30 dage er blevet reserveret, skal en dato kunne reserveres 2 gange. Men når en dato er blevet reserveret 2 gange, skal man ikke kunne reservere dem mere – lige meget hvad.
<script>
rd = "22/02/2003, 22/03/2003, 29/03/2003, 01/04/2003"; //reservations-datoer nu = new Date();
temp = rd.split(", ");
function eia(str) { for (n = 0; n < temp.length; n++) if (temp[n] == str) return true;
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
Slettet bruger
15. december 2002 - 20:17#1
Puha, det bliver nok noget af en opgave for browseren at køre alle de løkker igennem (og jeg er ikke helt sikker på, at jeg har fået logikken på plads), men prøve dette:
function eia(str) { f = 0; for (n = 0; n < temp.length; n++) { if (temp[n] == str) f++; if (f > 1) return true; if (f == 0) return false; } bla = str.split("/"); dato = new Date(parseInt(bla[2], 10), parseInt(bla[1], 10), parseInt(bla[0], 10)); for (i = 1; i <= 30; i++) { test = new Date(dato.getTime() + 1000 * 60 * 60 * 24 * i); teststr = ((test.getDate() < 10) ? "0" + test.getDate() : test.getDate()) + "/" + ((test.getMonth() + 1 < 10) ? "0" + (test.getMonth() + 1) : test.getMonth() + 1) + "/" + test.getFullYear(); hf = false; for (n = 0; n < temp.length; n++) { if (temp[n] == teststr) { hf = true; break; } } if (!hf) return true; } return false; }
Men hvordan skal det bygges sammen med min eksisterende kode? Hvordan skal de ikke-reserverede datoer smides i dropdown-boxen osv?
Synes godt om
Slettet bruger
17. december 2002 - 15:46#3
Du skifter bare den gamle eia-funktion ud med det, jeg har skrevet her. Så skulle det gerne virke (med mindre jeg har lavet en fejl i scriptet; det får vi at se). Smid gerne et link, hvis noget går galt!
Det er hermed gjort, men desværre virker det med, at scriptet ikke skal liste dato, som er blevet reserveret to gange. Den lister fejlagtigt alle datoer lige meget hvor mange gange de er blevet reserveret.
Synes godt om
Slettet bruger
19. december 2002 - 17:02#5
Vil du ikke smide et link? Det er sævrt for mig at arbejde på denne måde!
>Vil du ikke smide et link? Det skal jeg nok, men jeg skal lige ordne noget før det kan lade sig gøre.
Men jeg har fundet ud at, at fejlen sikkert opstår ved at datoen skabes af klienten (javascript), fordi det giver nogle problemer, hvis personen har indstillet på sin computers dato.
Så derfor har jeg skrev følgende om til ASP: nu = new Date();
Til: nu = "<% response.write date() %>";
Men det skaber en fejl i: td = new Date(nu.getTime() + 1000 * 60 * 60 * 24 * i);
Den siger: Object does not support this property or method
Kan du hjælpe?
Synes godt om
Slettet bruger
23. december 2002 - 14:19#7
Ja, prøv:
nu = new Date(<% response.write date() %>);
Jeg ved ikke, hvad output det giver, men det skal outputte antal millisekunder siden 1/1-1970.
>...millisekunder siden 1/1-1970. Ja, outputtet blev ovennævnte dato, men jeg troede ellers at date() gav serverens aktuelle dato, men det gør den åbenbart ikke. Hvordan udbygges koden - nu = new Date(<% response.write date() %>); - så den returnerer serverens aktuelle dato?
Synes godt om
Slettet bruger
24. december 2002 - 12:15#9
date() bør også give den aktuelle dato på serveren (jeg kender ikke så meget til ASP, men jeg kan da lidt PHP). De formater du kan udskrive en dato til et Date-objekt i JavaScript står her: http://www.w3schools.com/js/js_datetime.asp
Jeg lukker indlægget nu, da det er meget problematisk at tage en dato i ASP og smide den videre over i javascript. Jeg bliver nødt til at have datoen fra serveren da klienten kan have indstillet den forkert. Derfor "flytter" jeg nu spørgmålet over til asp-eksperterne og beder dem om at skrive koden i asp. Jeg takker for hjælpen :-)
Synes godt om
Ny brugerNybegynder
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.