Avatar billede mho30 Nybegynder
01. maj 2006 - 11:52 Der er 20 kommentarer og
1 løsning

Opdatering af checkboks udfra data i databasen

Jeg har søgt efter dette problem i tidligere spørgsmål, uden held.

Problemet består i at hente data fra en database og få resultatet vist i en checkboks. Altså hvis en kamp er noteret som "slapkamp" blev der under oprettelsen af kampen sat kryds i en checkbox, dette virker fint og lagres fint, men nu kan jeg ikke få det vist på side, hvor man skal kunne redigere i dataene om kampen.

I øjeblikket gør jeg følgende;

<% if Request.form("Slap") = "on" THEN %>
<input type="checkbox" name="Slap" value="true" checked>
<% else %>
<input type="checkbox" name="Slap" value="true">
<% End If %>

Dataene lagres i databasen således:

Slap = trim(request.form("Slap"))

If Slap="on" THEN
    Slap=1
else
    Slap=0
end if

SQL ="insert into TKampe (Slap) " & _
    "Values ("&Slap&");"

rs = conn.execute(sql)

Håber I kan hjælpe..
Avatar billede eagleeye Praktikant
01. maj 2006 - 12:00 #1
En checkboks overføre det som der står i value hvis den er valgt og tom hvis den ikke er valgt. Den overføre kun "ON" hvis values er tom og den er valgt så prøv at rette:

If Slap="on" THEN


Til:

If Slap="true" THEN


Eller hvis du er ligeglad med value så og bare vil tjekke om den er valgt:

If Slap<>"" THEN
Avatar billede mho30 Nybegynder
01. maj 2006 - 12:03 #2
Har rette koden til følgende, men det virker stadig ikke..       

<% If Slap<>"" THEN %>
<input type="checkbox" name="Slap" checked>
<% else %>
<input type="checkbox" name="Slap">
<% End If %>
Avatar billede eagleeye Praktikant
01. maj 2006 - 12:05 #3
Der hvor du udskriver checkboksen skal vel være fra kolonnene i databasen så det skal være i stil med dette hvor rs er et recordset:


<% If Cstr(rs("Slap")) = "1" THEN %>
<input type="checkbox" name="Slap" checked>
<% else %>
<input type="checkbox" name="Slap">
<% End If %>
Avatar billede eagleeye Praktikant
01. maj 2006 - 12:07 #4
hvilken type er kolonnen Slap ?
Avatar billede mho30 Nybegynder
01. maj 2006 - 12:08 #5
Får følgende fejl; Exception occurred

Hvad betyder If Cstr(rs("Slap"))?

Hvis Cstreng(?), recordset Slap?
Avatar billede eagleeye Praktikant
01. maj 2006 - 12:10 #6
Cstr konverter et tal til en streng, så den skulle konvertere indholdet af kolonne til tekst.
Avatar billede mho30 Nybegynder
01. maj 2006 - 12:10 #7
Slap er en yes/no datatype i access databasen
Avatar billede eagleeye Praktikant
01. maj 2006 - 12:10 #8
ok så prøv lige:


<% If rs("Slap") = true THEN %>
<input type="checkbox" name="Slap" checked>
<% else %>
<input type="checkbox" name="Slap">
<% End If %>
Avatar billede mho30 Nybegynder
01. maj 2006 - 12:13 #9
stadig fejl: Exception occurred.
Avatar billede eagleeye Praktikant
01. maj 2006 - 12:13 #10
Har du et recordset som hedder rs?
Hvis ikke hvad hedder dit recordset så?
Avatar billede mho30 Nybegynder
01. maj 2006 - 12:18 #11
det er jeg i tvivl om..
Avatar billede eagleeye Praktikant
01. maj 2006 - 12:18 #12
Hvordan henter du data fra databasen?
Avatar billede mho30 Nybegynder
01. maj 2006 - 12:19 #13
Du får lige dele her..

Her oprettes kampe (kampe.asp)

<!--#include file ="../../opendb.asp"-->
<!--#include file ="../../LoginTest.asp"-->

<html>
<head>
<link rel="stylesheet" type="text/css" href="../../../style.css">

<script language="javascript">
function checkEmpty(thisElement)
{
if (document.getElementById(thisElement).value == "")
  return true;
else
  return false;
}

function formvalidation(thisform)
{
if (checkEmpty("Kamp"))
    {
    alert("Du mangler at skrive hvem der har spillet!");
    document.getElementById("Kamp").focus();
    return false;
    }
else if (checkEmpty("Score"))
    {
    alert("Du mangler at skrive en score for kampen!");
    document.getElementById("Score").focus();
    return false;
    }
else if (checkEmpty("Dato"))
    {
    alert("Du mangler at skrive en dato!");
    document.getElementById("Dato").focus();
    return false;
    }

else
  return true;
}

</script>
</head>

<body bgcolor="#999966">
<FORM method="POST" name="kampForm" ACTION="kampSubmit.asp" onsubmit="return formvalidation(this)">
    <table border="0" cellpadding="3" cellspacing="0" width="100%" height="100%"  align="center" valign="middle">
    <tr>
        <td valign="top">
            <table border="0" height="100%">
            <tr>
                <td width="200" align="left" valign="top">
                    <font face=Verdana size=2><b>Kampe spillet i [CoZe]</b><br>
                    <font face=Verdana size=1><p align="justify">
                    Herfra kan du oprette, redigere og slette kampe spillet i [CoZe]. </p>

                </td>
            </tr>
            <tr>
                <td height="" align="center" valign="top">
                    <A HREF="#"
                    onClick="java script:if (formvalidation(this)) document.kampForm.submit();">
                    <img border="0" src="../../Billeder/buttonOpret.gif" width="81" height="20" cursor="hand">
                    </A>
        <br><br>
                    <A HREF="kampeRed.asp">
                    <img border="0" src="../../Billeder/buttonRed.gif" width="81" height="20" cursor="hand">
                    </A>
        <br><br>
                    <A HREF="kampeDel.asp">
                    <img border="0" src="../../Billeder/buttonSlet.gif" width="81" height="20" cursor="hand">
                    </A>

                </td>
            </tr>
            <tr>
                <td align="center">&nbsp;
                <% if request.queryString("update") ="true" THEN %>
                    <font face="Verdana" size="1"><b>Kampen er nu oprettet!</b>
                <% end if %>
                </td>
            </tr>

            </table>
        </td>
          <td width="150" align="center"valign="top">
          <table border="0" bordercolor="#D42222"  width="100%" height="100%" cellpadding="0" cellspacing="0">
          <tr><td colspan="2"><font face=Verdana size=1><b>Kamp: </b> &nbsp;&nbsp;&nbsp;Start med [CoZe] VS </font></td></tr>
          <tr><td colspan="2"><input type=text name="Kamp" value="<%=request.QUERYSTRING("Kamp") %>" size="60"></td></tr>

          <tr><td colspan="2"><font face=Verdana size=1><b>Score: </b></font></td></tr>
          <tr><td colspan="2"><input type=text name="Score" value="<%=request.QUERYSTRING("Score") %>" size="60"></td></tr>

          <tr><td colspan="2"><font face=Verdana size=1><b>Dato: </b></font></td></tr>
          <tr><td colspan="2"><input type=text name="Dato" value="<%=request.QUERYSTRING("Dato") %>" size="60"></td></tr>

          <tr><td colspan="2"><font face=Verdana size=1><b>Blev kampen spillet i SLAP.dk? </b>&nbsp;&nbsp;Sæt kryds for ja</font>&nbsp;&nbsp;&nbsp;&nbsp; <input type="checkbox" name="Slap" value="on"></td>
          </tr>
          </table>
          </td>
    </tr>
    </table>

</FORM>
</body>
</html>
Avatar billede mho30 Nybegynder
01. maj 2006 - 12:19 #14
Her submittes til databasen (kampSubmit.asp)

<!--#include file ="../../opendb.asp"-->
<!--#include file ="../../LoginTest.asp"-->

<%

Kamp = trim(request.form("Kamp"))
Score = trim(request.form("Score"))
Dato = trim(request.form("Dato"))
Slap = trim(request.form("Slap"))

If Slap="on" THEN
    Slap=1
else
    Slap=0
end if


SQL ="insert into TKampe (Kamp, score, Dato, Slap) " & _
    "Values ('"&Kamp&"','"&Score&"','"&Dato&"' , "&Slap&");"

rs = conn.execute(sql)
response.redirect("kampe.asp?update=true&id=" &id)
%>
Avatar billede mho30 Nybegynder
01. maj 2006 - 12:20 #15
Og her hentes fra databasen igen - med formål at kunne redigere (kampRed.asp)

<!--#include file ="../../opendb.asp"-->
<!--#include file ="../../LoginTest.asp"-->

<html>
<head>
<link rel="stylesheet" type="text/css" href="../../../style.css">


<%
sql= "select * from TKampe order by Kamp"
set rs = conn.execute(sql)
arrKampe = rs.GetRows

id = request.querystring("ID")

if id = "" then
  sql= "select top 1 * from TKampe order by Kamp"
else
  sql= "select * from TKampe where KampID=" & id
end if

set rs = conn.execute(sql)
arrKamp = rs.GetRows

%>

<script language="javascript">

function checkEmpty(thisElement)
{
if (document.getElementById(thisElement).value == "")
  return true;
else
  return false;
}

function formvalidation(thisform)
{
if (checkEmpty("Kamp"))
    {
    alert("Du mangler at skrive hvem der har spillet!");
    document.getElementById("Kamp").focus();
    return false;
    }
else if (checkEmpty("Score"))
    {
    alert("Du mangler at skrive en score for kampen!");
    document.getElementById("Score").focus();
    return false;
    }
else if (checkEmpty("Dato"))
    {
    alert("Du mangler at skrive en dato!");
    document.getElementById("Dato").focus();
    return false;
    }

else
  return true;
}

function getKampe()
{
var id=document.getElementById("id").options[document.getElementById("id").selectedIndex].value;
location.href="kampeRed.asp?id="+id;
}
</script>
</head>

<body bgcolor="#999966">
<FORM method="POST" name="kampForm" ACTION="kampeRedSubmit.asp?id=<%=id%>" onsubmit="return formvalidation(this)">
    <table border="0" cellpadding="3" cellspacing="0" width="100%" height="98%" bgcolor="#999966" align="center" valign="middle">
    <tr>
        <td valign="top">
            <table border="0" height="98%">
            <tr>
                <td width="200" height="120" align="left" valign="top" colspan="2">
                    <font face=Verdana size=2><b>Rediger en kamp</b><br>
                    <font face=Verdana size=1><p align="justify">
                    Du kan herfra redigere en kamp spillet i [CoZe].</p>
                </td>
            </tr>

            <tr>
                <td align="center">&nbsp;
                <% if request.queryString("update") ="true" THEN %>
                    <font face="Verdana" size="1"><b>Profilen er nu redigeret!</b>
                <%else%>
                    <A HREF="#"
                    onClick="java script:if (formvalidation(this)) document.kampForm.submit();">
                    <img border="0" src="../../Billeder/buttonOpdater.gif" width="81" height="20" cursor="hand">
                    </A>
                <% end if %>
                </td>
            </tr>
            </table>
        </td>
          <td width="400" align="center" valign="top">
          <table border="0" bordercolor="#D42222" bgcolor="#999966" width="100%" height="98%" cellpadding="0" cellspacing="0">
          <tr><td><font face=Verdana size=1><b>Vælg en kamp: </b></td></tr>
          <tr><td align="left" valign="top">
                <select name="kamp" size=1 id="id" onChange="getKampe();">
                    <%for i = 0 to Ubound(arrKampe,2)%>
                        <%if Trim(arrKampe(0,i)) = Trim(ID) then%>
                          <option value="<%=arrKampe(0,i)%>" selected><%=arrKampe(1,i)%>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</option>
                        <%else%>
                          <option value="<%=arrKampe(0,i)%>"><%=arrKampe(1,i)%>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</option>
                        <%end if%>
                    <%next%>
                </select>
          </td></tr>


          <tr><td><font face=Verdana size=1><b>Kamp: </b></font></td></tr>
          <tr><td><input type=text name="Kamp" value="<%=arrKamp(1,0)%>" size="60"></td></tr>

          <tr><td><font face=Verdana size=1><b>Score: </b></font></td></tr>
          <tr><td><input type=text name="Score" value="<%=arrKamp(2,0)%>" size="60"></td></tr>

          <tr><td><font face=Verdana size=1><b>Dato: </b></font></td></tr>
          <tr><td><input type=text name="Dato" value="<%=arrKamp(3,0)%>" size="60"></td></tr>

          <tr><td colspan="2"><font face=Verdana size=1><b>Blev kampen spillet i SLAP.dk? </b></font>&nbsp;&nbsp;&nbsp;&nbsp;
<% If rs("Slap") = true THEN %>
<input type="checkbox" name="Slap" checked>
<% else %>
<input type="checkbox" name="Slap">
<% End If %>
          </td>
          </tr>




          </table>
          </td>
    </tr>
    </table>

</FORM>
</body>
</html>
Avatar billede mho30 Nybegynder
01. maj 2006 - 12:21 #16
Endelig submittes den redigerede side her (kampRedSubmit.asp)

<!--#include file ="../../opendb.asp"-->
<!--#include file ="../../LoginTest.asp"-->

<%
id = trim(request.querystring("id"))
Kamp = trim(request.form("Kamp"))
Score = trim(request.form("Score"))
Dato = trim(request.form("Dato"))
Slap = trim(request.form("Slap"))

If Slap="on" THEN
    Slap=1
else
    Slap=0
end if

sql ="update TKampe set Kamp='"&Kamp&"', Score='"&Score&"', Dato='"&Dato&"', Slap="&Slap&" where KampID = "&id&";"

'response.write(sql)

rs = conn.execute(sql)
response.redirect("kampeRed.asp?update=true&id=" &id)
%>
Avatar billede eagleeye Praktikant
01. maj 2006 - 12:24 #17
Til koden i:  01/05-2006 12:19:43 
Og koden i :  01/05-2006 12:21:58
Vil jeg mene du skal rette:

If Slap="on" THEN
    Slap=1
else
    Slap=0
end if


Til:

If Slap<>"" THEN
    Slap=1
else
    Slap=0
end if






Til koden i:  01/05-2006 12:20:25

Skal denne:

<% If rs("Slap") = true THEN %>


Rettes til dette, det bliver et gæt men 4 tallet skal være det nr kolonnen har i rækkefølgen i tabellen:

<% If arrKamp(4,0) = true THEN %>
Avatar billede eagleeye Praktikant
01. maj 2006 - 12:25 #18
men hvis Slap er lige efter dato kolonne skulle 4 tallet være rigtigt.
Avatar billede mho30 Nybegynder
01. maj 2006 - 12:27 #19
YES!
det virker - 100 tak.
Avatar billede mho30 Nybegynder
01. maj 2006 - 12:29 #20
har du fået pointene?
Avatar billede eagleeye Praktikant
01. maj 2006 - 12:54 #21
Ja det har jeg ;)
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