Avatar billede idiotbarn Nybegynder
29. maj 2002 - 23:48 Der er 2 kommentarer og
1 løsning

Opdatere forskellige poster,med forskellig værdi

Jeg har denne side, det er nok nemmest hvis i selv sætter den ind i frontpage el.lign:
********************************************************
<%
Brugernavn = session("Brugernavn")

    Set Conn = Server.CreateObject("ADODB.Connection")
    DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
    DSN = DSN & "DBQ=" & Server.MapPath ("Firmafest.mdb")
    Conn.Open DSN
sql = "Select * from Sange order by point"
Set rs = Conn.Execute(sql)
%>
<html>

<head>
<meta http-equiv="Content-Language" content="da">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>Band</title>
</head>

<body bgcolor="#C0C0C0">

<form method="POST" action="Giv_Point.asp">

<table border="0" width="100%" cellspacing="0">
  <tr>
    <td width="20%" bgcolor="#A4A4A4"><font size="2" face="Verdana"><b>Band</b></font></td>
    <td width="20%" bgcolor="#A4A4A4"><font size="2" face="Verdana"><b>Sang</b></font></td>
    <td width="20%" bgcolor="#A4A4A4"><font size="2" face="Verdana"><b>Genre</b></font></td>
    <td width="20%" bgcolor="#A4A4A4"><font size="2" face="Verdana"><b>Point</b></font></td>
    <td width="20%" bgcolor="#A4A4A4"><font size="2" face="Verdana"><b>Kommentar</b></font></td>
  </tr>
  <%do while not rs.EOF or rs.BOF%>
  <tr>
    <td width="20%" bgcolor="#C0C0C0"><%=rs("Band")%></td>
    <td width="20%" bgcolor="#C0C0C0"><%=rs("Titel")%></td>
    <td width="20%" bgcolor="#C0C0C0"><%=rs("Genre")%></td>
    <%
    '*hvis det er brugeren som har tilføjet sangen, kan denne ikke tilføje point.
    If Brugernavn = rs("Bruger") Then
    %>
    <td width="20%" bgcolor="#C0C0C0"><%=rs("Point")%></td>
    <%Else%>
    <td width="20%" bgcolor="#C0C0C0">
    <select size="1" name="D1">
          <option selected value="-">-</option>
          <option value="1">1</option>
          <option value="2">2</option>
          <option value="3">3</option>
          <option value="4">4</option>
          <option value="5">5</option>
    </select>
    </td>
    <%
    'Hvis der er nogen sange som brugeren kan gi point ved, skal der komme en submit-knap.
    Knap = "Ja"
    End if
    %>
   
    <td width="20%" bgcolor="#C0C0C0"><%=rs("Kommentar")%></td>
  </tr>
  <%
  rs.movenext
  Loop
  %>
  <tr>
    <td>
    <%If Knap = "Ja" Then%>
    <input type="submit" value="Giv point" name="Giv point"></td>
    <%
    Else
    End if
    %> 
  </tr>
</table>

</form>
</body>


</html>
********************************************************
Det er nu meningen at når brugeren trykker submit, skal asp gå ind og finde ud af hvilke
sange den skal opdatere, og med hvor mange point. Det er det som er problemet for hvordan
kommer koden til den side til at se ud?
Det er fint nok hvis i ændre i denne kode også...
-Brian
Avatar billede tmceu Praktikant
30. maj 2002 - 00:17 #1
Du mangler som min. et eller andet felt, sandsynligvis et ID, som kan identificere den sang som skal have point. Pt. vil du potentielt få en masse data retur i request.form("D1") i formatet 1,2,3,3,2,1 altså alle de point, der er givet i en stor blandet masse, uden mulighed for at identificere den sang, der har fået point.

Lad os antage, at du har et ID for din sang, så ville jeg lave denne ændring:

<select size="1" name="P<% = rs("id") %>">
<option selected value="-">-</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
</select>

Så vil du kunne fp fat på alle sange med P[Sangens ID] via

For Each Item In Request.Form
' check for om prefix er "P"
Next

Det vil nok være lidt spild af tid at begynde at snakke om opdaterings suden, indtil du har gjort ovenstående eller noget lignende, som gør dig i stand til at identificere point ift. sange.
Avatar billede idiotbarn Nybegynder
31. maj 2002 - 15:33 #2
kan du ikke uddybe lidt? Jeg er ved godt hvad du mener, men jeg kan ikke lige komme videre...
Avatar billede tmceu Praktikant
02. juni 2002 - 18:10 #3
Jeg antager, at du udskriver dine sange/pointbokse via ovenstående kode. Dette giver dig eks. 3 sange der kan stemme på

<select size="1" name="P1">
[options]
</select>

<select size="1" name="P2">
[options]
</select>

<select size="1" name="P3">
[options]
</select>

Du stemmer nu på sang 1 og 3 og trykker submit. På opdateringssiden, kan du så lave flg.

For Each Item In Request.Form
If UCase(Left(Item, 1)) = "P" Then

  strSQL = "UPDATE Sange SET Point=point+" & Request.Form(Item)"
  strSQL = strSQL & " WHERE [ID] = " & CInt(Replace(Item, "P", ""))

  Conn.Execute(strSQL)
End If
Next
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