Avatar billede lasserasch Juniormester
29. januar 2006 - 02:48 Der er 6 kommentarer og
1 løsning

Opdatering af tabel fejler!

Hejsa!

Jeg henter data fra en HTML form jeg har! Denne form indeholder nogle forskellige rækker i en tabel, hvor en af kollonerne er en "Checkbox" ved navn "task_release". Denne form sendes med POST.

Når jeg modtager formen, skal jeg have skilt alle records ad. Jeg skal altså kunne se, hvilke række brugeren har vinget af med et flueben, og så kun opdatere databasen med disse rækker!

Jeg har følgend kode, som driller lidt! Det er sikkert en lille fejl, men jeg har stiret mig blind på problemet! Så håber en kan hjælpe lidt!!!


Her kommer koden
--------------------


<% elseif mode = "updatedb" then

task_id        = split(request.form("task_id"),",")
task_status    = "3"
task_softwarever= request.form("task_softwarever")
releasebox    = split(request.form("task_release"),",")

for i         = 0 to Ubound(task_id)


if releasebox(i) = "TRUE" then
Set rs = Server.CreateObject("ADODB.Recordset")
rs.open "update task_db set task_status = '"&task_status&"', task_softwarever = '"&task_softwarever&"' where task_id = '"&task_id(i)&"' ", strsqlconnect

end if

next

' response.redirect "tasklist2.asp?mode=oversigt"



else %>

<font color="#FFFFFF">OM IGEN DU!!!! FEJL I SCRIPTET!!!!</font>
<% end if %>


------------------
Avatar billede lasserasch Juniormester
29. januar 2006 - 02:51 #1
Det som sker, er at den opdaterer alle rækker uanset om releasebox(i) er TRUE eller ej. Jeg har en <% on error resume next %> på. Hvis jeg slår den fra, får jeg fejlen

Microsoft VBScript runtime error '800a0009'

Subscript out of range: 'i'

/intern/tasklist2.asp, line 290





Hvad pokker gør jeg galt?


/Lasserasch
Avatar billede tjp Mester
29. januar 2006 - 03:01 #2
Her ville bare lidt oplysning om hvad det er præcist, der driller, jo ikke skade! ;-)
Avatar billede tjp Mester
29. januar 2006 - 03:02 #3
Glem kommentar - havde ikke opdateret, tsk tsk!
Avatar billede tjp Mester
29. januar 2006 - 03:10 #4
Prøv at udskriv 'releasebox(i)' og Ubound for både 'task_id' og 'releasebox'.
Avatar billede lasserasch Juniormester
29. januar 2006 - 03:22 #5
Hejsa. Ja, det er så en ting jeg glemte at nævne, for det har jeg også selv forsøgt!

Hvis jeg ikke sætter flueben nogen steder, så releasebox(i) = nul og nix ved de 2 records jeg har i databasen pt.

Hvis jeg sætter flueben ud for en af dem, så bliver releasebox(i) = "TRUE" for record nr. 1. Og så er det lige meget om jeg har sat fluebenet ved record nr. 1 eller 2.

Sætter jeg flueben ud for begge records, så bliver begge releasebox(i) = "TRUE".

Så et eller andet sted, må jeg lave en fejl! Jeg inkluderer lige hele sourcekoden! Design, kommentarer og opstilling må i bære lidt over med, da det som regl bliver lavet til sidst i mine ASP koder! Så det ser måske en smule rodet ud!


---------------------


<!--#include file = "includes/sql_connect.asp" -->
<% ' on error resume next %>
<style type="text/css">
<!--
.tabel1 {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 13px;
    background.color: #8F8F8F
}
-->
<!--
.tabel2 {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 13px;
   
   
}
-->


<!--
.knap1 {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 10px;
    border: 1px solid #000000;
    background-color: #FFFFFF;
}
-->




<!--
.tabellink {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 13px;
      cursor: hand;
    background.color: #CCCCCC
}
-->



</style>







<html>

<head>
<title>Opgavestyring!</title>
</head>




<body bgcolor="#000000">

    <%
    mode = ""
    mode = request.querystring("mode")

    if mode = "" then
    mode = request.form("mode")

        if mode = "" then
        mode     = "oversigt"
        end if
    end if
    %>





<% if mode ="oversigt" then %>
<table align="center" width=600>


<tr>
       
      <td class="tabel1" align="center">ID                </td>
        <td class="tabel1" align="center">Overskrift            </td>
          <td class="tabel1" align="center">Status            </td>
    <td class="tabel1" align="center">Bestilt af kunde        </td>
    <td class="tabel1" align="center">Frigivnings Version        </td>
          <td class="tabel1" align="center" width=120>Marker for release    </td>
    </tr>

    <form action="tasklist2.asp" method="post">
    <input type="hidden" name="mode" value="release">
<%
' Henter Opgaver fra DB

    Set rs = Server.CreateObject("ADODB.Recordset")
    rs.open "SELECT * from task_db", strsqlconnect

    do
%>

<!--#include file = "includes/getstatus.asp" -->



   
   
    <input type="hidden" name="task_id" value="<%=rs("task_id")%>">
     
    <tr>
         
          <td class="tabel2" bgcolor="#CCCCCC"><%=rs("task_id")%>                                        </td>

          <a href="tasklist2.asp?mode=details&task_id=<%=rs("task_id")%>">
    <td class="tabellink"><%=rs("task_title")%>
    </td></a>

          <td class="tabel2" bgcolor="<%=status_bg%>"><%=status%>                </td>
         

    <a href="tasklist2.asp?mode=details&task_id=<%=rs("task_id")%>">
    <td class="tabellink"><%=rs("task_order")%>
    </td></a>




    <a href="tasklist2.asp?mode=details&task_id=<%=rs("task_id")%>">
    <td class="tabellink"><%=rs("task_softwarever")%>
    </td></a>



    <td class="tabel2" bgcolor="#CCCCCC" align="center">
    <input type="checkbox" name="task_release" value="TRUE" >                                        </td>
    </tr>

<%
    rs.movenext
    loop while not rs.eof
%>

   
</table>

<table width=800 align="center">
<tr>
<td class="tabel2" align="center"><img src="includes/knap2.jpg"></td>
<td align="right">
<input type="image" src="includes/knap.jpg" width=300 height=200>


</td>
</tr>
<tr>
<td></td><td align="center" class="tabel2"><font color="#FFFFFF">Indtast Software Release Nr.: <input type="text" name="task_softwarever"></td>
</tr>
</form>
</table>















<% elseif mode ="details" then



    task_id = ""
    task_id = request.querystring("task_id")

    if task_id = "" then
    task_id = request.form("task_id")

    end if


%>

<table align="center" width=600>


<tr>
       
      <td class="tabel1">ID            </td>
        <td class="tabel1">Overskrift        </td>
          <td class="tabel1">Status        </td>
    <td class="tabel1">Bestilt af kunde    </td>
    <td class="tabel1">Frigivnings Version    </td>
          <td class="tabel1">Muligheder        </td>
    </tr>

<%
' Henter Opgaver fra DB

    Set rs = Server.CreateObject("ADODB.Recordset")
    rs.open "SELECT * from task_db where task_id = '"&task_id&"' ", strsqlconnect
%>

<!--#include file = "includes/getstatus.asp" -->



    <form action="tasklist2.asp" method="post">
    <input type="hidden" name="mode" value="save">
    <input type="hidden" name="task_id" value="<%=task_id%>">
     
    <tr>
         
          <td class="tabel2" bgcolor="#CCCCCC"><%=rs("task_id")%>                                </td>
          <td class="tabel2" bgcolor="#CCCCCC"><%=rs("task_title")%>                            </td>
          <td class="tabel2" bgcolor="<%=status_bg%>" align="center">

    <select name="task_status">
   
    <option selected><%=status%></option>
    <% if status <> "Ny Opgave" then %>
    <option>Ny Opgave</option>
    <% end if %>
    <% if status <> "Igang værende" then %>
    <option>Igang værende</option>
    <% end if %>
    <% if status <> "Afsluttet" then %>
    <option>Afsluttet</option>
    <% end if %>
   
    </select>                           
                                                            </td>
          <td class="tabel2" bgcolor="#CCCCCC"><%=rs("task_order")%>                            </td>
    <td class="tabel2" bgcolor="#CCCCCC"><%=rs("task_softwarever")%>                        </td>
    <td class="tabel2" bgcolor="#CCCCCC" align="center"><input type="submit" class="knap1" value="Gem Ændringer">    </td>
        </tr>
   
    <tr>
    <td class="tabel1" colspan=6><textarea rows=20 cols=80 name="task_text"><%=rs("task_text")%></textarea></td>
    </tr>


    </form>



<% elseif mode ="save" then

    task_text     = request.form("task_text")
    task_id        = request.form("task_id")
    task_status    = request.form("task_status")
       
        if task_status = "Ny Opgave" then
        task_status = "1"
        elseif task_status = "Igang værende" then
        task_status = "2"
        elseif task_status = "Afsluttet" then
        task_status = "3"
        end if

    Set rs = Server.CreateObject("ADODB.Recordset")
    rs.open "update task_db set task_text = '"&task_text&"', task_status = '"&task_status&"' where task_id = '"&task_id&"' ", strsqlconnect
    response.redirect "tasklist2.asp?mode=oversigt"

%>



<% elseif mode = "release" then


task_id        = split(request.form("task_id"),",")
task_status    = "3"
task_softwarever= request.form("task_softwarever")
releasebox    = split(request.form("task_release"),",")


for i         = 0 to Ubound(task_id)


    if releasebox(i) = "TRUE" then
    Set rs = Server.CreateObject("ADODB.Recordset")
    rs.open "update task_db set task_status = '"&task_status&"', task_softwarever = '"&task_softwarever&"' where task_id = '"&task_id(i)&"' ", strsqlconnect
    end if
next

' response.redirect "tasklist2.asp?mode=oversigt"



else %>

<font color="#FFFFFF">FEJL!!!!</font>
<%

end if

%>

</body>
</html>
Avatar billede lasserasch Juniormester
29. januar 2006 - 03:24 #6
Eneste include fil ud over SQL connections strengen er getstatus.asp

Dens kode kommer lidt her, for at give et lidt bedre overblik!



----------------------

<%
Status = rs("task_status")

    if status     = 1 then
    status         = "Ny Opgave"
    status_bg    = "#F0E68C"
    elseif status     = 2 then
    status        = "Igang værende"
    status_bg    = "#90EE90"
    elseif status    = 3 then
    status         = "Afsluttet"
    status_bg    = "#191970"
    else
    status        = "Fejl"
    status_bg    = "#FF0000"

    end if

%>



/Lasserasch
Avatar billede lasserasch Juniormester
29. januar 2006 - 18:24 #7
Nå, ingen løsning denne gang herinde! Spørgsmål lukkes igen!
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