Avatar billede steen_hansen Forsker
19. maj 2021 - 23:46

Problemer med ikke-tomt recordset, If LCase(Request.Form("TimeOffStart")) = "on" Then osv.

Jeg prøver at sætte det op for kunderne, så de kan vælge f.eks. afspadsering, ferie, barsel mv v.hj.a. af to datepickere:

"Jeg afspadserer fra og med [dd-mm-åååå, datepicker #1] til og med [dd-mm-åååå, datepicker #2]"

Hvis kunden så har valgt en afspadserings-startdato og en afspadserings-slutdato, sætter jeg en checkbox på, som vil være checked, undlader datepickerne, men udskriver i stedet datoen:

"[checkbox, checked] Jeg afspadserer fra og med 20-05-2021 til og med 24-05-2021."

Inden datepickerne er udfyldt og submitted er de synlige.
Når datepickerne er udfyldt og submitted, vil datepickerne ikke være synlige. I stedet udskrives de to datoer.

Meningen er så, at når man fjerner hakket fra checkbox og submitter, så fjernes datoen fra recordset, og man kan derefter ændre datoen til en ny, hvis man har lavet en fejl, eller hvis man aftaler en anden dato med chefen. Det går så ikke, som jeg har forventet. Her er hele HTML + ASP (jeg benytter MySQL):

<!DOCTYPE html>

<html lang="da" dir="ltr" class="loggedin">

<%

    Set RS = Conn.Execute("SELECT username, TakingSomeTimeOff, TimeOffStart, TimeOffEnd settings WHERE username = '" & SQLEncode(Session("username")) & "'")

    If Request("mode") = "editsettings" Then

    Dim TimeOffStart2, TimeOffEnd2
    If RS("TimeOffStart") <> "" Then
        TimeOffStart2 = RS("TimeOffStart")
        TimeOffEnd2 = RS("TimeOffEnd")
    Else
        TimeOffStart2 = ""
        TimeOffEnd2 = ""
    End If

    Dim TakingSomeTimeOff, TimeOffStart1, TimeOffEnd1
    If RS("TimeOffStart") = "" Then
        If Request.Form("TimeOffStart") <> "" Then
            TakingSomeTimeOff = 1
            TimeOffStart1 = Request.Form("TimeOffStart")
            TimeOffEnd1 = Request.Form("TimeOffEnd")
        Else
            TakingSomeTimeOff = 0
            TimeOffStart1 = ""
            TimeOffEnd1 = ""
        End If
    ElseIf RS("TakingSomeTimeOff") = 1 Then
        If Request.Form("TakingSomeTimeOff") = "" Then
            TakingSomeTimeOff = 0
            TimeOffStart1 = ""
            TimeOffEnd1 = ""
        Else
            TakingSomeTimeOff = 1
            TimeOffStart1 = TimeOffStart2
            TimeOffEnd1 = TimeOffEnd2
        End If
    End If

    Conn.Execute "UPDATE settings SET TakingSomeTimeOff = " & TakingSomeTimeOff & ", TimeOffStart = " & TimeOffStart1 & ", TimeOffEnd = " & TimeOffEnd1 & "  WHERE username = '" & SQLEncode(Session("username")) & "'"
    Conn.Close

    Response.Redirect "/..............."

<head>
    <title>Dine indstillinger</title>
</head>

<body>

<form action="/profile/settings/" method="post">
<input type="hidden" name="mode" value="editsettings">
    <% If RS("TakingSomeTimeOff") = 0 Then %>
    <div class="col-md-12 form-group my-0 row form-inline">
        <div class="col-md-4 form-inline">
            Jeg afspadserer fra og med
        </div>
        <div class="col-md-7 form-inline">
            <input type="date" id="TimeOffStart" name="TimeOffStart" class="form-control datepicker"><span class="ml-3 mr-3">til og med</span><input type="date" id="TimeOffEnd" name="TimeOffEnd" class="form-control datepicker">
        </div>
    </div>
    <% ElseIf RS("TakingSomeTimeOff") = 1 Then %>
    <div class="col-md-12 form-inline">
        <input type="checkbox" name="TakingSomeTimeOff" id="TakingSomeTimeOff" autofocus="autofocus" class="form-check-input"<% If RS("TakingSomeTimeOff") = 1 Then %> checked<% End If %>> Jeg afspadserer fra og med den <%=RS("TimeOffStart")%> til og med den <%=RS("TimeOffEnd")%>.
    </div>
    <% End If %>
</form>

</body>
</html>

Jeg har været LANGT omkring med at få det til at spille. Det ovenstående eksempel er det seneste forsøg, det har stået på over flere dage. Håber virkelig på hjælp.
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

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