[ASP] Gegevens selecteren middels checkboxen

Pagina: 1
Acties:

  • Kamikazi
  • Registratie: Juli 2001
  • Niet online
Heb flink lopen zoeken, maar kom er niet uit...

Ik gebruik een script om de volledige inhoud van een Access database te tonen.

Ik wil nu, via checkboxen, dat de gebruiker kan kiezen welke records hij wil meenemen naar de volgende pagina...

En dat is dus precies wat me niet lukt...

Moet ik de checkbox waarde automatisch laten aanpassen?! Ik weet het nie meer... :'(

edit:
De gebruikte code even toevoegen

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<%
set rs=Server.CreateObject("ADODB.recordset")
rs.Open "Select * from BetalingSystem", conn
%>

<table border="1" width="100%">
<tr>
<%for each x in rs.Fields
    response.write("<th>" & x.name & "</th>")
next%>
</tr>
<%do until rs.EOF%>
    <tr>
    <%for each x in rs.Fields%>
     <td><%Response.Write(x.value)%></td>
    <%next
    rs.MoveNext%>
    </tr>
<%loop
rs.close
conn.close
%>

  • Sjnirk
  • Registratie: Maart 2001
  • Laatst online: 27-03-2025

Sjnirk

Hie vrieve

Je kunt toch gewoon alle aangevinkte checkbox-en(daar dan de prime key van) in een array zetten en die doorgeven :?

Bikkelen gebeurt pas na 2:00


Verwijderd

Als je nu gewoon checkboxen toevoegt, en deze in de volgende pagina check of zo...
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<%
set rs=Server.CreateObject("ADODB.recordset")
rs.Open "Select * from BetalingSystem", conn
%>

<form action="volgende_pagina.asp" method="post"
<table border="1" width="100%">
<tr>
<%for each x in rs.Fields
    response.write("<th>")
    response.write("<input type=""checkbox"" name=""" & x.name & """ value=""checked""")
    response.write(x.name)
    response.write("</th>")
next%>
</tr>
<%do until rs.EOF%>
    <tr>
    <%for each x in rs.Fields%>
     <td><%Response.Write(x.value)%></td>
    <%next
    rs.MoveNext%>
    </tr>
<%loop %>
</table>
</form>
<%
rs.close
conn.close
%>

En daarna kun je op eenzelfde manier (bijna dan) opnieuw een sql-query maken....(in je 'volgende-pagina.asp')
code:
1
2
3
4
5
6
7
8
9
10
11
12
<%
Dim StrSQL
StrSQL = "Select "
For Each x in Request.Form
    If Request.Form(x) = "checked" then
        StrSQL = StrSQL & x & ", "
    End If
Next
StrSQL = StrSQL & " from BetalingSystem"
set rs=Server.CreateObject("ADODB.recordset")
rs.Open StrSQL, conn
%>

Moet je alleen nog even een check maken dat de laatste veldnaam geen komma bevat in je sql-query, en dat je minimaal 1 veld in je sql-query hebt.
Voor de rest kun je je pagina op dezelfde manier opbouwen als voorheen.

(wat edit dat fijn zo'n mini-editor venstertje ;) )

Verwijderd

Oei, schrijf ik net een stukje waarmee je de veldnamen kunt selecteren en meenemen naar een nieuwe pagina, lekker boeiend.

*****nevermind****

  • PhoneTech
  • Registratie: Mei 2000
  • Laatst online: 09-09 17:22
eehm...

probeer je nu de records te selecteren om door te geven naar de volgende pagina?

Dan is dit denk ik de makkelijkste manier:

Ga door alle records heen en zet voor elke record een checkbox
code:
1
<input type="checkbox" name="RecordID" value="<%=Naam van Primary key%>">

Het mooie aan de methode is dat hij alleen de gevinkte checkboxes mee geeft in een met een komma gespatieerde string.

bijvoobeeld : 1, 4, 5, 7, enz enz..
Deze string kan je meteen weer in een SQL string gebuiken
code:
1
Set ObjRS = ObjConn.execute("SELECT * FROM Records WHERE RecordID IN (" & request("RecordID") & )")

khoop dat je hier wat aan hebt

  • Kamikazi
  • Registratie: Juli 2001
  • Niet online
Op dinsdag 23 april 2002 12:59 schreef PhoneTechnician het volgende:
eehm...

Deze string kan je meteen weer in een SQL string gebuiken
code:
1
Set ObjRS = ObjConn.execute("SELECT * FROM Records WHERE RecordID IN (" & request("RecordID") & )")

khoop dat je hier wat aan hebt
Uhm... dit stukje snap ik niet helemaal

edit:
Nu wel

  • PhoneTech
  • Registratie: Mei 2000
  • Laatst online: 09-09 17:22
Op dinsdag 23 april 2002 13:22 schreef Kamikazi het volgende:

[..]

Uhm... dit stukje snap ik niet helemaal
Ok. Wat ik dus doe, is het direct uitvoeren van een SQL query en maak er metteen een object van. Dit is nagenoeg dezelde manier die jij ook gebruikt, maar voor het gemak, zal ik het even omzetten naar jouw gedachten gang ;)
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<%
set rs=Server.CreateObject("ADODB.recordset")
rs.Open "SELECT * FROM Records WHERE RecordID IN (" & request("RecordID") & )", conn
%>
<table border="1" width="100%">
<tr>
<%for each x in rs.Fields
    response.write("<th>" & x.name & "</th>")
next%>
</tr>
<%do until rs.EOF%>
    <tr>
    <%for each x in rs.Fields%>
     <td><%Response.Write(x.value)%></td>
    <%next
    rs.MoveNext%>
    </tr>
<%loop
rs.close
conn.close
%>

Maar ik denk dat je beter een andere manier kan gebruiken want persoonlijk vind ik de ADODB.recordset methode een beetje rommelig...Dit is hoe ik het zou doen:

[code]
<%
Set ObjConn = Server.createObject("ADODB.Connection")
ObjConn.Open "DSNNAAM"

strSQL = "SELECT * FROM Records WHERE RecordID IN (" & request("RecordID") & )"

Set ObjRS = ObjConn.execute(strSQL)

Do While NOT ObjRS.eof%>
HTML ZOOI
<%ObjRS.MoveNext : Loop

ObjRS.Close
ObjRS = Nothing
ObjConn.Close
ObjConn = Nothing
%>

[edit]

Ik zie al dat je het al snapt, maar probeer toch wat structueler met de benaming van je variabelen om te gaan.
Pagina: 1