Avatar billede zeusdk Nybegynder
09. december 2002 - 18:20 Der er 1 løsning

Udbygning af script

Hej

Jeg har et script, som går ned i min database og henter datoer op. Disse datoer er reservationsdatoer, som den springer over, idet den smider de ikke-reserverede datoer ind i en dropdown-box.

Der er bare den begrænsning i scriptet, at en dato kun kan reserveres en gang. Nu er det imidlertid blevet sådan i "virkelighedens verden", at en dato godt kan reserveres mere end en gang. Så der skal indbygges noget funktionalitet, som gør, at jeg (f.eks. via en variabel) kan bestemme, hvor mange gange en dato kan reserveres.

Du har helt frie hænder til at lave alt koden om, hvis du finder det hensigtsmæssigt.

<%
    Set myConn=Server.CreateObject("ADODB.Connection")
    myConn.Open ("PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE="+server.Mappath("/db/selvet.mdb"))
    strSQL = "Select distinct datopublish from search where (datopublish between #" & Date() + 1 & "# and #" & Date() + 364 & "#) order by datopublish"
    set rs = myConn.execute(strSQL)
   
    do while not rs.EOF
        if isDate(rs("datopublish")) then
            myDates = myDates & rs("datopublish") & ", "
        End If
    rs.MoveNext
    Loop
   
    'response.write("<script>alert('" & strSQL & "')</script>")
    'response.write("<script>alert('" & myDates & "')</script>")
    if not myDates = "" then
        myDates = left(myDates,len(myDates)-2)
    end if

%>

Hvis det irriterer dig, at scriptet er et mismask mellem asp og javascript, så lav den endelig om. Du har frie hænder.

<script>

rd = "<% response.write myDates %>";
nu = new Date();

temp = rd.split(", ");

function eia(str) {
    for (n = 0; n < temp.length; n++)
        if (temp[n] == str) return true;
   
    return false;
}

document.write('<select name="datoPublikation" style="font-size: 10pt; font-family: Trebuchet MS">');

for (i = 1; i <= 364; i++) {
    td = new Date(nu.getTime() + 1000 * 60 * 60 * 24 * i);
    str = ((td.getDate() < 10) ? "0" + td.getDate() : td.getDate()) + "-" + ((td.getMonth() + 1 < 10) ? "0" + (td.getMonth() + 1) : td.getMonth() + 1) + "-" + td.getFullYear();
    if (!eia(str))
        document.write('<option value="' + str + '">' + str + '</option>');
}
document.write('<select>');
</script>
Avatar billede zeusdk Nybegynder
14. december 2002 - 15:50 #1
lukker
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
Kurser inden for grundlæggende programmering

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