Avatar billede steen_hansen Forsker
03. juli 2005 - 01:26 Der er 1 kommentar og
1 løsning

Diverse tjek på formularfelter

Jeg skal tjekke hvad en bruger markerer i 3 radiobuttons:

Vis mit navn i min profil:
1. Ja
2. Nej
3. Delvist

Nedenunder er der 3 tekstfelter, som RS("firstname"), RS("middlename") og RS("lastname") bliver trukket ud i. Brugerne skal have mulighed for at ændre navn; man kunne jo f.eks. gå hen og blive gift: value="<%=Server.HTMLEncode(NoNull(RS("firstname")))%>")

1. Fornavn
2. Mellemnavn
3. Efternavn

Ud for hvert felt, kan man vælge at hakke af i en checkbox ud for de felter, som man ønsker vist i sin profil (hvis man da ønsker det). Ønsker man kun sit fornavn vist, hakker man kun af i checkboksen ud for fornavnet. Ønsker man kun efternavnet vist, vælger man kun det etc. Man kan selv kombinere efter eget ønske. Man skal dog så lige huske at hakke af i mindst én af dem, hvis man har valgt "Delvist".

Har man markeret Nej (radio), skal markeringen fra alle checkboxe fjernes.

Har man markeret Ja (radio), skal alle checkboxe markeres. Dog skal der kun markeres i For- og efternavn, hvis mellemnavn-feltet ikke er udfyldt (for- og efternavn er obligatorisk ved oprettelse af profil, ikke mellemnavn, da man måske ikke har noget). Men ellers skal der markeres i alle felter.



Nu vil jeg gerne tjekke for de forskellige kombinationer:

Der er valgt NEJ (1):
Alle markeringer fra checkboxe skal fjernes.

Der er valgt JA (2):
Alle checkboxe skal markeres.

Der er valgt DELVIST (3):
Mindst én af checkboksene skal være valgt. Hvis alle checkboxe = 0 (ingen af dem er markerede), skal jeg have lavet noget á la dette:

Hvis DELVIST = 3 Og ingen af checkboxene er markerede Så
      Response.Reirect("/error.asp?msg=Du+skal+foretage+mindst+ét+valg!"

Hvad jeg foreløbigt har lavet, får du her:

<%
Dim showfullname
If LCase(Request.Form("showfullname")) = 1 Then
    showfullname = 1
ElseIf LCase(Request.Form("showfullname")) = 2 Then
    showfullname = 2
ElseIf LCase(Request.Form("showfullname")) = 3 Then
    showfullname = 3
End If

If LCase(Request.Form("showfullname")) <> 1 Then
    Dim showfirstname
    If Lcase(Request.Form("showfirstname")) = "on" Then
        showfirstname = 1
    Else
        showfirstname = 0
    End If
Else
    showfirstname = 0
End If

If LCase(Request.Form("showfullname")) <> 1 Then
    Dim showmiddlename
    If Lcase(Request.Form("showmiddlename")) = "on" Then
        showmiddlename = 1
    Else
        showmiddlename = 0
    End If
Else
    showmiddlename = 0
End If

If LCase(Request.Form("showfullname")) <> 1 Then
    Dim showlastname
    If Lcase(Request.Form("showlastname")) = "on" Then
        showlastname = 1
    Else
        showlastname = 0
    End If
Else
    showlastname = 0
End If
%>


<tr>
    <td align="left" colspan="5">
        <table border="0" cellpadding="0" cellspacing="0" class="full">
            <tr>
                <td align="left" style="width: 40%;">Jeg ønsker mit navn vist i min profil:</td>
                <td align="left" style="width: 5%;"><input type="radio" value="1" name="showfullname"<% If RS("showfullname") = 1 Then %> checked<% End If %>></td><td align="left" style="width: 4%;">Nej</td>
                <td align="left" style="width: 5%;"><input type="radio" value="2" name="showfullname"<% If RS("showfullname") = 2 Then %> checked<% End If %>></td><td align="left" style="width: 4%;">Ja</td>
                <td align="left" style="width: 5%;"><input type="radio" value="3" name="showfullname"<% If RS("showfullname") = 3 Then %> checked<% End If %>></td><td align="left" style="width: 37%;">Delvist, jeg vælger selv</td>
            </tr>
        </table>
    </td>
</tr>

<tr>
    <td class="td1"><input type="checkbox" id="showfirstname" name="showfirstname"<% if RS("showfirstname") = 1 Then %> checked<% End If %>></td>
    <td align="left" class="td2">Fornavn:</td>
    <td align="left" class="td3"><input type="text" name="firstname" value="<%=Server.HTMLEncode(NoNull(RS("firstname")))%>" class="input1" style="width: 208px;" class="input1"></td>
    <td align="left" class="td4"></td>
    <td class="td5">&nbsp;</td>
</tr>
<tr>
    <td class="td11"><input type="checkbox" id="showmiddlename" name="showmiddlename"<% if RS("showmiddlename") = 1 Then %> checked<% End If %>></td>
    <td align="left" class="td22">Mellemnavn:</td>
    <td align="left" class="td33"><input type="text" name="middlename" value="<%=Server.HTMLEncode(NoNull(RS("middlename")))%>" class="input1" style="width: 208px;" class="input1"></td>
    <td align="left" class="td44"></td>
    <td class="td55">&nbsp;</td>
</tr>
<tr>
    <td class="td1"><input type="checkbox" id="showlastname" name="showlastname"<% if RS("showlastname") = 1 Then %> checked<% End If %>></td>
    <td align="left" class="td2">Efternavn:</td>
    <td align="left" class="td3"><input type="text" name="lastname" value="<%=Server.HTMLEncode(NoNull(RS("lastname")))%>" class="input1" style="width: 208px;" class="input1"></td>
    <td align="left" class="td4"></td>
    <td class="td5">&nbsp;</td>
</tr>

Det var en ordentlig smøre. Håber du forstår mit ønske:

Vælg 1 for ikke at vise navn
Vælg 2 for at vise det fulde navn
Vælg 3 for at vælge selv, hvad der skal vises
Avatar billede steen_hansen Forsker
03. juli 2005 - 11:20 #1
Jeg har fundet ud af 1 og 2 (Vis intet/Vis det hele), men kan ikke lige få grejet med at få vist delvist. Denne sætter jeg ind på for-, mellem- og efternavn:

        If LCase(Request.Form("showfullname")) <> 1 Then
            Dim showmiddlename
            If Lcase(Request.Form("showmiddlename")) = "on" Then
                showmiddlename = 1
            ElseIf LCase(Request.Form("showfullname")) = 2 Then
                showmiddlename = 1
            Else
                showmiddlename = 0
            End If
        Else
            showmiddlename = 0
        End If

Nu er der "kun" tilbage, at tjekke på, om mindst ét af felterne er valgt, hvis man vælger radio3 (Vis dele af navnet)
Avatar billede steen_hansen Forsker
03. juli 2005 - 19:49 #2
Ved nærmere eftertanke er det noget bøvl at lave, så brugerne må bare selv tjekke af, hvad de lyster.
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