[ASP] Help Please.....

Pagina: 1
Acties:

  • Alpha-sphere
  • Registratie: Januari 2001
  • Laatst online: 14-12-2021
ik had hier gister ook al een post over. [topic=379688/1/25]
Ik heb een tabel met info kunnen opvragen met achter elke record een radiobutton. Hiermee wil ik records gaan deleten. Maar er wordt geen waarde doorgestuurd. Ik heb er nu even 2 pagina's van gemaakt omdat de vorige niet zo overzichtelijk was. test4a.asp en test4b.asp

Test 4a
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
30
31
<%
Set connectionToDatabase=Server.CreateObject("ADODB.Connection")
connectionToDatabase.ConnectionTimeout=60
connectionToDatabase.Open "DSN=test"

Set recordSet=Server.CreateObject("ADODB.Recordset")
recordSet.Open "SELECT * FROM voorstelling",connectionToDatabase,1,2

If response.IsClientConnected = true then
    Response.Write("<center><table border=1><tr><th>Voorstelling</th><th>Datum</th><th>Tijd</th><th>Select</th></tr>")

Do While Not recordSet.EOF
            Response.Write("<form action='test4b.asp' method='post'>")
            Response.Write("<TR>")
            Response.Write("<TD>" & recordSet("Naam") & "</TD>")
            Response.Write("<TD>" & recordSet("Datum") & "</TD>")
            Response.Write("<TD>" & recordSet("Tijd") & "</TD>")
            Response.Write("<TD><input type='Radio' name='Radio' value='"& recordSet("Naam") &"'></TD>")
            Response.Write("</TR>")
            recordSet.MoveNext
Loop
Response.Write("</table></center>")
Response.Write("<br><center><input type='Submit' name='edit' value='edit'>&nbsp;&nbsp;&nbsp;&nbsp;<input type='Submit' name='delete' value='" & request.form("Radio") &"'></center></form>")

else
    Response.End
End If

connectionToDatabase.Close
Set connectionToDatabase=Nothing
%>

Test 4b
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<%
frmEdit=Request.Form("edit")
frmDelete=Request.Form("Delete")

Set recordSet=Server.CreateObject("ADODB.Recordset")
Set connectionToDatabase=Server.CreateObject("ADODB.Connection")
connectionToDatabase.ConnectionTimeout=60
connectionToDatabase.Open "DSN=test"

sqlStatement="DELETE FROM voorstelling WHERE Naam='"& frmDelete &"'" 
connectionToDatabase.Execute(sqlStatement)

connectionToDatabase.Close
Set connectionToDatabase=Nothing
%>

Ik heb dus al de SQLstatement laten printen en ik krijg het volgende.
DELETE FROM voorstelling WHERE Naam=''
Er wordt niks doorgegeven naar de volgende pagina. En ik zie maar niet wat er niet klopt. Ik heb de value van de submit knop ook al verandert naar value='" & request.form("Radio") &"'

Heeft iemand nog sugesties?????

Assume there are no rules and it's one big free for all


  • Canard
  • Registratie: Oktober 1999
  • Laatst online: 07-09 17:34
Hoe submit je het form? D.m.v. drukken op enter of door het klikken op de button?
Als je op enter drukt, wordt het form niet goed ge-submit.

  • Alpha-sphere
  • Registratie: Januari 2001
  • Laatst online: 14-12-2021
Ik heb het met een submit knopje zoals je hier ziet
<input type='Submit' name='delete' value='" & request.form("Radio") &"'>

Assume there are no rules and it's one big free for all


  • Canard
  • Registratie: Oktober 1999
  • Laatst online: 07-09 17:34
Op dinsdag 15 januari 2002 09:42 schreef Yilkee het volgende:
Ik heb het met een submit knopje zoals je hier ziet
<input type='Submit' name='delete' value='" & request.form("Radio") &"'>
Lees mijn vraag nog eens...

  • Alpha-sphere
  • Registratie: Januari 2001
  • Laatst online: 14-12-2021
Ik kan op het knopje drukken en ik kan op enter drukken

Assume there are no rules and it's one big free for all


  • Canard
  • Registratie: Oktober 1999
  • Laatst online: 07-09 17:34
wat wordt er geprint als je dit toevoegt aan test4b.asp?
code:
1
2
3
Reponse.write("edit = " & Request.Form("edit") & ".<br>")
Reponse.write("delete = " & Request.Form("delete") & ".<br>")
Reponse.write("radio = " & Request.Form("Radio") & ".<br>")

  • man_rot
  • Registratie: Augustus 2001
  • Laatst online: 09:02
Kijk eens goed naar je form !!
je definieert je form binnen de recordset lus, dit kan je beter er voor doen, nu heb je de begin definitie binnen de lus, en de eind definitie er buiten!
nu klopt de HTML niet meer

in je form gebruik je "delete", in je 2e pagina gebruik je "Delete" (let op hoofdletter) beide mag, maar je kan beter consequent zijn

je kan altijd uitvragen wat er binnen komt door response.write request.form op te geven, dan zie je alle parameters binnen komen, met de juiste naam

hieronder een voorbeeld dat werkt, en hou ik het zou oplossen

--------------------------------------------------------------------------------------
testform1.asp

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>tonen overzicht</title>
</head>
<body>
<%
Response.Write("<form action='testformradio2.asp' method='post'>")
Response.Write("<center><Table border='1'>")
Response.Write("<TR>")
Response.Write("<TD>rij 1,c1</TD>")
Response.Write("<TD>rij 1,c2</TD>")
Response.Write("<TD>rij 1,c3</TD>")
Response.Write("<TD><input type='Radio' name='Radio' value='rij1'></TD>")
Response.Write("</TR>")
Response.Write("<TR>")
Response.Write("<TD>rij 2,c1</TD>")
Response.Write("<TD>rij 2,c2</TD>")
Response.Write("<TD>rij 2,c3</TD>")
Response.Write("<TD><input type='Radio' name='Radio' value='rij2'></TD>")
Response.Write("</TR>")
Response.Write("<TR>")
Response.Write("<TD>rij 3,c1</TD>")
Response.Write("<TD>rij 3,c2</TD>")
Response.Write("<TD>rij 3,c3</TD>")
Response.Write("<TD><input type='Radio' name='Radio' value='rij3'></TD>")
Response.Write("</TR>")
Response.Write("</table></center>")
Response.Write("<br><center><input type='Submit' name='select' value='edit'>")
Response.Write("    ")
Response.Write("<input type='Submit' name='select' value='delete'></center></form>")
%>
</body>
</html>


--------------------------------------------------------------------------------------
testform2.asp

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>verwerken selectie</title>
</head>
<body>
<%
Response.Write("Alle variabelen : ")
Response.Write request.form
Response.Write("<br>")
Response.Write("<br>")
Response.Write("Per parameter :")
Response.Write("<br>")
Response.Write("Radio : ")
Response.Write request.form("Radio")
Response.Write("<br>")
Response.Write("select : ")
Response.Write request.form("select")
Response.Write("<br>")
Response.Write("select maar dan moet hoofdletter : ")
Response.Write request.form("Select")
Response.Write("<br>")
%>
</body>
</html>
--------------------------------------------------------------------------------------

suc6 :+

Groetjes Manfred


  • man_rot
  • Registratie: Augustus 2001
  • Laatst online: 09:02
p.s je definitie van je button klopt dus ook niet, maar ik hoop dat je dat in mijn voorbeeld ziet ! ;)

Groetjes Manfred


Verwijderd

Anders probeer dit eens, PAS OP lelijk geprogrammeerd. Je moet eigenlijk proberen, zeker met asp, meer gestructureerd te programmeren.

helpA.asp
---------

<%
Set connectionToDatabase=Server.CreateObject("ADODB.Connection")
connectionToDatabase.ConnectionTimeout=60
connectionToDatabase.Open "DSN=test"
Set recordSet=Server.CreateObject("ADODB.Recordset")
recordSet.Open "SELECT * FROM voorstelling",connectionToDatabase,1,2

If response.IsClientConnected = true then
Response.Write("<center><table border=1><tr><th>Voorstelling</th><th>Datum</th><th>Tijd</th><th>Select</th></tr>")
counter = 0
if not (recordSet.BOF and recordSet.EOF) then ' Check if db is empty
Response.Write("<form action='test4b.asp' method='post'>")
Do While Not recordSet.EOF
Response.Write("<TR>")
Response.Write("<TD>" & recordSet("Naam") & "</TD>")
Response.Write("<TD>" & recordSet("Datum") & "</TD>")
Response.Write("<TD>" & recordSet("Tijd") & "</TD>")
Response.Write("<TD><input type='Radio' name='Radio" & counter & "'></TD>")
Response.Write("</TR>")
counter = counter + 1;
recordSet.MoveNext
Loop
Response.Write("</table></center>")
Response.Write("<br><center><input type='Submit' name='edit' value='edit'>    <input type='Submit' name='delete' value='" & counter &"'></center></form>")
else
Response.Write("<tr><td colspan='4'>Database empty</td></tr>")
Response.Write("</table></center>")
Response.Write("</form>")
end if
else
Response.Write("not connected")
Response.End
End If

connectionToDatabase.Close
Set connectionToDatabase=Nothing
%>



helpB.asp
---------

<%
Set connectionToDatabase=Server.CreateObject("ADODB.Connection")
connectionToDatabase.ConnectionTimeout=60
connectionToDatabase.Open "DSN=test"
Set recordSet=Server.CreateObject("ADODB.Recordset")
recordSet.Open "SELECT * FROM voorstelling",connectionToDatabase,1,2

If response.IsClientConnected = true then
Response.Write("<center><table border=1><tr><th>Voorstelling</th><th>Datum</th><th>Tijd</th><th>Select</th></tr>")
counter = 0
if not (recordSet.BOF and recordSet.EOF) then ' Check if db is empty
Do While Not recordSet.EOF
Response.Write("<form action='test4b.asp' method='post'>")
if (Request.Form("Radio" & counter) = 1) then
elementDelete = recordSet("Naam")
else
Response.Write("<TR>")
Response.Write("<TD>" & recordSet("Naam") & "</TD>")
Response.Write("<TD>" & recordSet("Datum") & "</TD>")
Response.Write("<TD>" & recordSet("Tijd") & "</TD>")
Response.Write("<TD><input type='Radio' name='Radio" & counter & "'></TD>")
Response.Write("</TR>")
end if
counter = counter + 1;
recordSet.MoveNext
Loop
Response.Write("</table></center>")
Response.Write("<br><center><input type='Submit' name='edit' value='edit'>    <input type='Submit' name='delete' value='" & counter &"'></center>")
Response.Write("<br><h1>Element " & elementDelete & " has been deleted!</h1></form>")
sqlStatement="DELETE FROM voorstelling WHERE Naam='"& elementDelete &"'"
connectionToDatabase.Execute(sqlStatement)
else
Response.Write("<tr><td colspan='4'>Database empty</td></tr>")
Response.Write("</table></center>")
Response.Write("</form>")
end if
else
Response.Write("not connected")
Response.End
End If

connectionToDatabase.Close
Set connectionToDatabase=Nothing
%>

Hopelijk helpt dit je, kunnen trouwens nog wat foutjes inzitten, had weinig tijd :(
Sorry voor de grote post

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 11:21

Janoz

Moderator Devschuur®

!litemod

Op dinsdag 15 januari 2002 09:42 schreef Yilkee het volgende:
Ik heb het met een submit knopje zoals je hier ziet
<input type='Submit' name='delete' value='" & request.form("Radio") &"'>
Zegt serverside en clientside je trouwens iets?

De oplossing is ook al gewoon in je vorige topic gegeven hoor...... (je moet je request.form("Radio")wel op de juiste plaats neerzetten)

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • Canard
  • Registratie: Oktober 1999
  • Laatst online: 07-09 17:34
dit forum ondersteunt 'code' tags. Gebruik ze dan ook!

code:
1

  • Alpha-sphere
  • Registratie: Januari 2001
  • Laatst online: 14-12-2021
Het is al opgelost.

Ik had met m'n domme hoofd de waarde van de radiobutton gekoppeld aan de submit knop. en in test4b.asp vraag ik de info op van de delete knop.

In plaats van het bovenstaande heb ik dit gedaan: Submit knop value heb ik gewoon submit gemaakt. In test4b.asp wordt de waarde niet van de submitknop opgevraagd maar van de radiobutton. en hiermee is alles opgelost.

Assume there are no rules and it's one big free for all


  • Canard
  • Registratie: Oktober 1999
  • Laatst online: 07-09 17:34
Op dinsdag 15 januari 2002 10:51 schreef Yilkee het volgende:
Het is al opgelost.

Ik had met m'n domme hoofd de waarde van de radiobutton gekoppeld aan de submit knop. en in test4b.asp vraag ik de info op van de delete knop.

In plaats van het bovenstaande heb ik dit gedaan: Submit knop value heb ik gewoon submit gemaakt. In test4b.asp wordt de waarde niet van de submitknop opgevraagd maar van de radiobutton. en hiermee is alles opgelost.
zulke dingen zie je heel snel met Response.write's van Request.Form...

Verwijderd

Op dinsdag 15 januari 2002 10:51 schreef Yilkee het volgende:
Het is al opgelost.
oke dan. :)
Pagina: 1