Sortieren einer Tabelle nach Auswahl eines Buttons

stud3

Aktives Mitglied
hallo,
bei folgendem Code bekomme ich nicht die Ergebnisse, die ich möchte. Und zwar, wenn man ein "radio" button auswählt, z.B. Produkt, sollte meine Tabelle beim Klicken auf "Abschicken" sortiert nach der Spalte Produkt angezeigt werden, genauso wenn man "Produkt_id" auswählt, sollte meine Tabelle nach der Produkt_id angezeigt werden. Was tue ich falsch hier, hätte jemand eine Idee?

<form name="form1" action="/datenbank/Radio.asp" method="post">
<table border="1">
<tr>
<td><input type="radio" name="RadioKnopf" value="1" checked>Produkt</td>
<td><input type="radio" name="RadioKnopf" value="2">Produkt_id</td>
</tr>
<tr><td><input type="button" name="Senden" value="Abschicken"></td></tr>
</table>
</form>

<%


On Error Goto 0
Dim strSort
Dim objConn
Dim objCmd
Dim objRS
Dim strConn
Dim SQLquery
Dim strDB
strDB = "Data Source=" &_
Server.MapPath("../datenbank/db1.mdb")
Set objRS = server.CreateObject("ADODB.Recordset")
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" & strDB
strSort = Request("RadioKnopf")
SQLquery = "SELECT *" & _
"FROM LU_Produkt ORDER BY '" & strSort & "'"
objRS.Open SQLquery,strConn

Set objConn = CreateObject("ADODB.Connection")
objConn.ConnectionString = strConn
objConn.Open()

Set objCmd = CreateObject("ADODB.Command")
Set objCmd.ActiveConnection = objConn
objCmd.CommandText = SQLquery

Set objRS = objCmd.Execute
%>
<%
Dim intCurrent
Dim strBgColor
intCurrent = 0
While Not objRS.EOF And Response.IsClientConnected
strBgColor = "#f5f5ff"
%>

<table align=center width="70%">
<td align=center width=10% ><%= objRS("Produkt_id") %></td>
<td align=center width=20% ><%= objRS("Produkt") %></td>

<%
intCurrent = intCurrent + 1
objRS.MoveNext
Wend
objRS.Close()
objConn.Close()
Set objRS = Nothing
Set objCmd = Nothing
Set objConn = Nothing
%>
</table>




 
Ich bin nicht sicher, ob Request("RadioKnopf") den Value oder den Text des gewählten Elements liefert. Lass Dir doch das SQLQuery mal ausgeben, vielleicht siehst Du dann gleich warums nicht geht.

Griessli
Irene
 
ich bekomme das gleiche Ergebnis und alles unsortiert, egal ob ich Produkt oder Produkt_id auswähle. Wenn ich der Code mit den radios auskommentiere, bekomme ich auch dasselbe.
 
Wie lautet denn das SQLQuery mit der Sortierung genau? Und wenn Du das kopierst und im SQL Server ausführst, sind die Resultate da die gleichen?

Griessli
Irene
 
Submit wird dir den value liefern. In deinem Fall also 1 oder 2. Was dann Queries wie
"Select ...... order by 1" oder "Select ...... order by 2" ergibt. Das ist sicher falsch.

Abhilfe: den value im HTML Formular durch die Bezeichnung auf der DB ersetzen.
 
...wenn Sie meinen strSort, den habe ich "Request("RadioKnopf")" zugewiesen. Zu Hause arbeite ich mit Access, nur bei dem Praktikum habe ich Zugriff auf SQL Server, bei mir zu Hause benutze Access, SQL Server habe ich nicht. Meine Absicht ist es nach dem Auwahl des radio Buttons das entürechende Sortieren zu bekommen, wenn Produkt, sollte die Tabelle sortiert nach Produkt erscheinen, wenn Produkt_id , dann sortiert nach Produkt_id.

An: Roger
ich habe den value durch <%=objRS("") %> ersetzt, aber ich bekomme die Meldung:
Laufzeitfehler in Microsoft VBScript-Fehler '800a000d'

Typen unverträglich

/datenbank/Radio.asp, Zeile 6
CODE
<html>
<body>
<form name="form1" action="/datenbank/Radio.asp" method="post">
<table border="1">
<tr>
<td><input type="radio" name="RadioKnopf" [COLOR=red]value="<%= objRS("Produkt_id") %>" [/COLOR]checked>Produkt_id</td>
<td><input type="radio" name="RadioKnopf" [COLOR=red]value="<%= objRS("Produkt") %>" [/COLOR]>Produkt</td>
</tr>
<tr><td><input type="button" name="Senden" value="Abschicken"></td></tr>
</table>
</form>

<%


On Error Goto 0
Dim strSort
Dim objConn
Dim objCmd
Dim objRS
Dim strConn
Dim SQLquery
Dim strDB
strDB = "Data Source=" &_
Server.MapPath("../datenbank/db1.mdb")
Set objRS = server.CreateObject("ADODB.Recordset")
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" & strDB
strSort = Request("RadioKnopf")
SQLquery = "SELECT *" & _
"FROM LU_Produkt ORDER BY " & RadioKnopf & " "
objRS.Open SQLquery,strConn

Set objConn = CreateObject("ADODB.Connection")
objConn.ConnectionString = strConn
objConn.Open()

Set objCmd = CreateObject("ADODB.Command")
Set objCmd.ActiveConnection = objConn
objCmd.CommandText = SQLquery

Set objRS = objCmd.Execute
%>
<%
Dim intCurrent
Dim strBgColor
intCurrent = 0
While Not objRS.EOF And Response.IsClientConnected
strBgColor = "#f5f5ff"
%>

<table align=center width="70%">
<td align=center width=10% ><%= objRS("Produkt_id") %></td>
<td align=center width=20% ><%= objRS("Produkt") %></td>

<%
intCurrent = intCurrent + 1
objRS.MoveNext
Wend
objRS.Close()
objConn.Close()
Set objRS = Nothing
Set objCmd = Nothing
Set objConn = Nothing
%>
</table>
</body>
</html>




 
Zurück
Oben