Avatar billede lund_dk Praktikant
20. juni 2006 - 21:15 Der er 16 kommentarer og
1 løsning

Gemme flere poster på en gang

Jeg har denne side hvor jeg får en liste med flere poster..
hvor jeg vil gemme alle poster på en gang, men hvordan gør jeg det når jeg submitter?


<div class="title">Godkend profilbilleder</div>

<%
Set rspicture = Conn.Execute("select * from profilepictures WHERE approved = false")
if not rspicture.eof then 
%>
<table border="0" cellspacing="1" cellpadding="0" width="100%">
  <tr>
 
<%
  AntalKolonner = 3' Juster denne hvis der skal være et andet antal kolonner
  counter = 0
  do while not rspicture.eof
    %>
<td class="catpoint">
<%=Getusername("" & rspicture("userID") & "") & Getusernamesex("" & rspicture("userID") & "")%><br/>
<%=ShowProfilePicture("" & rspicture("userID") & "")%><br/>
<input type="radio" name="approve" value="yes" checked=""> Godkend
<input type="radio" name="approve" value="no"> Afvis</td>

<%
    response.Write "</td>"
    rspicture.movenext       

    counter = counter + 1
    if counter mod AntalKolonner = 0 then
      response.Write "  </tr>" & vbCrLf
      if not rspicture.eof then
        response.Write "  <tr>" & vbCrLf
      end if
    end if
  loop
  rspicture.close
  set rs = nothing

  ' udfyld resten af cellerne i den aktuelle række
  do while counter mod AntalKolonner <> 0
    response.Write "<td>&nbsp;</td>"
    counter = counter + 1
  loop
%>
  </tr>
</table>
<input type="submit" value="Godkend / Afvis" class="inputsubmit" />
<%
end if
%>
Avatar billede lund_dk Praktikant
20. juni 2006 - 21:27 #1
name har jeg nu givet id nummer i stedet..

Når jeg submiter, så får jeg dette

?1=yes&2=yes&3=yes

Det skal jo så opdeles og laves noget loop, er det jeg vil have hjælp til
Avatar billede nielle Nybegynder
20. juni 2006 - 21:34 #2
Start med at smide en form rundt om det hele - og sæt method="post" i denne.
Avatar billede lund_dk Praktikant
20. juni 2006 - 21:50 #3
Den ser sådan her ud nu

<div class="title">Godkend profilbilleder</div>
<form method="post" action="default.asp?S=10&M=Profilepictures">
<%
Set rspicture = Conn.Execute("select * from profilepictures WHERE approved = false")
if not rspicture.eof then 
%>
<table border="0" cellspacing="1" cellpadding="0" width="100%">
  <tr>
 
<%
  AntalKolonner = 4' Juster denne hvis der skal være et andet antal kolonner
  counter = 0
  do while not rspicture.eof
    %>
<td style="text-align:center;">
<%=Getusername("" & rspicture("userID") & "") & Getusernamesex("" & rspicture("userID") & "")%><br/>
<%=ShowProfilePicture("" & rspicture("userID") & "")%><br/>
<input type="radio" name="<%=rsPicture("ID")%>" value="ja" checked="" style="background: green;">
<input type="radio" name="<%=rsPicture("ID")%>" value="nej" style="background: red;"></td>

<%
    response.Write "</td>"
    rspicture.movenext       

    counter = counter + 1
    if counter mod AntalKolonner = 0 then
      response.Write "  </tr>" & vbCrLf
      if not rspicture.eof then
        response.Write "  <tr>" & vbCrLf
      end if
    end if
  loop
  rspicture.close
  set rs = nothing

  ' udfyld resten af cellerne i den aktuelle række
  do while counter mod AntalKolonner <> 0
    response.Write "<td>&nbsp;</td>"
    counter = counter + 1
  loop
%>
  </tr>
</table>
<input type="submit" value="Godkend / Afvis" class="inputsubmit" />
</form>
<%
end if
%>
Avatar billede nielle Nybegynder
20. juni 2006 - 21:58 #4
Ok.

Jeg tror faktisk at vi næst er ved at være i mål.

Nu skrver du godt nok "gemme" i overskriften, men jeg gætter på at du i virkeligheden meder opdatere... Der skal vel ikke oprettes nye poster, men kun pådateres i de eksistrende poster i din tabel "profilepictures". Korrekt?
Avatar billede lund_dk Praktikant
20. juni 2006 - 22:00 #5
Jeg henter ud fra databasen, i databasen har jeg et felt der hedder "approved".
Når jeg gemmer,skal Ja værdierne give approved = true og nej værdierne skal slette min record fra databasen

Så skal bare have et output hvor jeg kan sige hvis #id# = ja then osv.
Avatar billede nielle Nybegynder
20. juni 2006 - 22:02 #6
Du kunne overveje om du så ikke i virkeligheden hellere skal bruge en enket checkboks pr. post i stedet for to rediobuttons?
Avatar billede lund_dk Praktikant
20. juni 2006 - 22:03 #7
Jo det kunne man egentlig også godt gøre..

Så ser den sådan her ud..

<div class="title">Godkend profilbilleder</div>
<form method="post" action="default.asp?S=10&M=Profilepictures">
<%
Set rspicture = Conn.Execute("select * from profilepictures WHERE approved = false")
if not rspicture.eof then 
%>
<table border="0" cellspacing="1" cellpadding="0" width="100%">
  <tr>
 
<%
  AntalKolonner = 4' Juster denne hvis der skal være et andet antal kolonner
  counter = 0
  do while not rspicture.eof
    %>
<td style="text-align:center;">
<%=Getusername("" & rspicture("userID") & "") & Getusernamesex("" & rspicture("userID") & "")%><br/>
<%=ShowProfilePicture("" & rspicture("userID") & "")%><br/>
<input type="checkbox" name="<%=rsPicture("ID")%>" checked="">
<%
    response.Write "</td>"
    rspicture.movenext       

    counter = counter + 1
    if counter mod AntalKolonner = 0 then
      response.Write "  </tr>" & vbCrLf
      if not rspicture.eof then
        response.Write "  <tr>" & vbCrLf
      end if
    end if
  loop
  rspicture.close
  set rs = nothing

  ' udfyld resten af cellerne i den aktuelle række
  do while counter mod AntalKolonner <> 0
    response.Write "<td>&nbsp;</td>"
    counter = counter + 1
  loop
%>
  </tr>
</table>
<input type="submit" value="Godkend / Afvis" class="inputsubmit" />
</form>
<%
end if
%>
Avatar billede nielle Nybegynder
20. juni 2006 - 22:10 #8
Ok, når du så har submittet din form, så løver du tabellen "profilepictures" igennem en gang til of så spørger du på Form.Request(...):

Set rsPicture = Conn.Execute("SELECT * FROM profilepictures WHERE approved = false")
Do While Not rsPicture.EOF
    If Request.Form(rsPicture("ID")) == "on" Then
        sqlUpdate = "UPDATE profilepictures SET approved = true WHERE id = " & rsPicture("ID")
        Con.Execute(sqlUpdate)
    End If
    rsPicture.MoveNext
Loop
Avatar billede lund_dk Praktikant
20. juni 2006 - 22:17 #9
Request object error 'ASP 0105 : 80004005'

Index out of range

/sec10_profilepictures.asp, line 5

An array index is out of range.


Linie 5 er
If Request.Form(rsPicture("ID")) = "on" Then
Avatar billede nielle Nybegynder
20. juni 2006 - 22:23 #10
Ok, det kan godt være at det ikke er så fedt at checkboksen kun har et tal som navn. Prøv lige at ændre:

<input type="checkbox" name="<%=rsPicture("ID")%>" checked="">

- til:

<input type="checkbox" name="cb<%=rsPicture("ID")%>" checked="">

- og derefter er det så tilsvarende:

Set rsPicture = Conn.Execute("SELECT * FROM profilepictures WHERE approved = false")
Do While Not rsPicture.EOF
    If Request.Form("cb" & rsPicture("ID")) == "on" Then
        sqlUpdate = "UPDATE profilepictures SET approved = true WHERE id = " & rsPicture("ID")
        Con.Execute(sqlUpdate)
    End If
    rsPicture.MoveNext
Loop
Avatar billede lund_dk Praktikant
20. juni 2006 - 23:01 #11
Efter nærmere omtanke vil jeg gerne have den med radio buttons, da jeg nok udvider funktionen med flere valg, eks ligesom her..

Så vil jeg gerne kunne sige noget med
if id = "Godkend" then
if if = "Straf" then
osv, og så på den måde styre hvad der skal ske, alt efter hvilken radio button der er valgt..


<div class="title">Godkend profilbilleder</div>

<%
Set rspicture = Conn.Execute("select * from profilepictures WHERE approved = false")
if not rspicture.eof then 
%>
<table border="0" cellspacing="1" cellpadding="0" width="100%">
  <tr>
 
<%
  AntalKolonner = 3' Juster denne hvis der skal være et andet antal kolonner
  counter = 0
  do while not rspicture.eof
    %>
<td class="catpoint">
<%=Getusername("" & rspicture("userID") & "") & Getusernamesex("" & rspicture("userID") & "")%><br/>
<%=ShowProfilePicture("" & rspicture("userID") & "")%><br/>
<input type="radio" name="<%=rsPicture("ID") %>" value="Godkend" checked=""> Godkend
<input type="radio" name="<%=rsPicture("ID") %>" value="Straf"> Straf</td>
<input type="radio" name="<%=rsPicture("ID") %>" value="Afvis"> Afvis</td>

<%
    response.Write "</td>"
    rspicture.movenext       

    counter = counter + 1
    if counter mod AntalKolonner = 0 then
      response.Write "  </tr>" & vbCrLf
      if not rspicture.eof then
        response.Write "  <tr>" & vbCrLf
      end if
    end if
  loop
  rspicture.close
  set rs = nothing

  ' udfyld resten af cellerne i den aktuelle række
  do while counter mod AntalKolonner <> 0
    response.Write "<td>&nbsp;</td>"
    counter = counter + 1
  loop
%>
  </tr>
</table>
<input type="submit" value="Godkend / Afvis" class="inputsubmit" />
<%
end if
%>
Avatar billede nielle Nybegynder
21. juni 2006 - 06:31 #12
Start med at give dem et navn som ikke består af kun tal:

<input type="radio" name="rb<%=rsPicture("ID") %>" value="Godkend" checked=""> Godkend
<input type="radio" name="rb<%=rsPicture("ID") %>" value="Straf"> Straf</td>
<input type="radio" name="rb<%=rsPicture("ID") %>" value="Afvis"> Afvis</td>

- og derefter:

Set rsPicture = Conn.Execute("SELECT * FROM profilepictures")
Do While Not rsPicture.EOF
    rb = Request.Form("cb" & rsPicture("ID"))
    If rb <> "" Then
        sqlUpdate = "UPDATE profilepictures SET approved = " & rb & " WHERE id = " & rsPicture("ID")
        Con.Execute(sqlUpdate)
    End If
    rsPicture.MoveNext
Loop
Avatar billede nielle Nybegynder
21. juni 2006 - 06:56 #13
Ret lige:

rb = Request.Form("cb" & rsPicture("ID"))

- til:

rb = "" & Request.Form("cb" & rsPicture("ID"))

- i det ovenstående.
Avatar billede nielle Nybegynder
21. juni 2006 - 06:56 #14
... og videre til:

rb = "" & Request.Form("rb" & rsPicture("ID"))
Avatar billede lund_dk Praktikant
21. juni 2006 - 13:33 #15
Hvad så hvis jeg har valgt afvis eller straf ud for et billede?
Avatar billede lund_dk Praktikant
21. juni 2006 - 13:35 #16
For hvis jeg vælger afvis, skal jeg ikke opdatere, men derimod slette posten,
væger jeg straf, så skal jeg slette posten, men også lave noget i anden tabel..
Avatar billede lund_dk Praktikant
21. juni 2006 - 14:56 #17
http://www.eksperten.dk/spm/716781
Har tilladt mig at smide spørgsmålet derover, og lukker her, tror vi er for meget rundt omkring det hele,så det ikke er helt til at hitte ud af..
Så nyt friskt spørgsmål, men præcis hvad det er jeg vil
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