Avatar billede baitianlong Nybegynder
05. januar 2005 - 19:03 Der er 9 kommentarer og
2 løsninger

uge funktion med js-array er underlig !

Jeg er ved at lave et bookingsystem, og der er en funktion, der checker om man har bestile mindst en sammenhængende uge, og ingen enkeltstående dage. Jeg fik hjælp til funktionen her: http://www.eksperten.dk/spm/575356

Men ak, coderdk. Der lader til at være noget galt. Jeg har dog på fornemmelsen at det er noget med caching i stedet for scriptet. Scriptet ser dog således ud:

function helUge($arr) {
    $n = count($arr);
    if($n < 7) {
        return "Du bedes bestille mindst en sammenhængende uge";
    }
    sort($arr);
    reset($arr);
    for($i = 0; $i < $n - 1; $i++) {
        //echo date("d/m-Y", strtotime($arr[$i]))." - ";
        //echo date("d/m-Y", strtotime( "-1 DAY", strtotime( $arr[ $i + 1 ] ) ) ) . "<br>";
        if(strtotime($arr[$i]) != strtotime("-1 DAY", strtotime($arr[$i+1]))) {
            return "De bestilte dage er ikke sammenhængende";
        }
    }
    return "";
}

Problemet er at hvis man vælger noget, der ikke duer, f.eks en enkelt dag, og trykker "bestil", så får man fint nok fejlen, men hvis man så vælger en korrekt uge bagefter, kommer fejl nr. 2 ofte. Prøv selv her: www.legende.dk/booking/kalenderny.php

vælg så 1 løs dag (f.eks 8/1)
klik "bestil"
klik "tilbage til kalender"
vælg en sammenhængende uge ved at klikke rodet
klik "bestil"

(nu er der en 50 % chance for at i siger: Det virker da fint. Men af en eller anden årsag går den kold nogen gange)

Hvad sker der?
Avatar billede coderdk Praktikant
05. januar 2005 - 19:47 #1
Hvad skriver den hvis du fjerne udkommenteringen på de to echo'er? For så vidt jeg kan se burde det virke!
Avatar billede baitianlong Nybegynder
05. januar 2005 - 20:32 #2
Jeg synes også det burde virke, men nogen gange efter lidt frem og tilbage. går den i kage. Jeg ved ikke om du har prøvet det på siden.
Avatar billede coderdk Praktikant
05. januar 2005 - 20:38 #3
Jo, men hvad skriver den når du fjerner udkommenteringen?
Avatar billede baitianlong Nybegynder
11. januar 2005 - 21:12 #4
Hey coderdk. Sorry for ventetiden :)

check: www.legende.dk/booking/kalenderny.php

tryk næste og marker d. 6-12 marts og tryk bestil.
Avatar billede coderdk Praktikant
11. januar 2005 - 21:25 #5
Prøv lige efter reset($arr); at skrive dette:
echo "<pre>"; var_dump( $arr ); echo "</pre>";

Det ser ud som om arrayet ikke er sorteret ordentligt ;)
Avatar billede baitianlong Nybegynder
11. januar 2005 - 22:53 #6
array(7) {
  [0]=>
  string(10) "2005-03-10"
  [1]=>
  string(10) "2005-03-11"
  [2]=>
  string(10) "2005-03-12"
  [3]=>
  string(9) "2005-03-6"
  [4]=>
  string(9) "2005-03-7"
  [5]=>
  string(9) "2005-03-8"
  [6]=>
  string(9) "2005-03-9"
}
Avatar billede baitianlong Nybegynder
11. januar 2005 - 22:54 #7
Det er så fordi vi skal have puttet et nul ind i datoen, vil jeg tro ?!
Avatar billede baitianlong Nybegynder
11. januar 2005 - 22:58 #8
jeps...

if($datearr[0] < 10) $datearr[0] = "0".$datearr[0];

...så var den fikset :)
Avatar billede baitianlong Nybegynder
11. januar 2005 - 23:01 #9
Smid lige et svar :) Det er rart det virker nu ...
Avatar billede coderdk Praktikant
12. januar 2005 - 08:51 #10
:D Det var jo dig der fixede den ;)
Avatar billede baitianlong Nybegynder
12. januar 2005 - 17:07 #11
Tja, men du holdt mig i hånden imens :P
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