Posta formulärskoden kanske då?
Variabel i Request.Form?
30 svar · 594 visningar · startad av trexter.com · sida 2 av 2
ElseIf Request.QueryString("vad") = "modifiera" Then
strSQL = "SELECT Poll_questions.id, Poll_questions.nom, Poll_questions.numero, Poll_answers.id, Poll_answers.nom, Poll_answers.votes, Poll_answers.attachment FROM Poll_questions, Poll_answers WHERE Poll_questions.id = Poll_answers.attachment AND Poll_questions.id = " & Request.QueryString("id")
Set RecSet = Connect.Execute(strSQL)
' Om det finns frågor i databasen
IF NOT RecSet.EOF THEN
arrRecords = RecSet.GetRows
Response.Write "<div class=""underrubrik"">Modifiera omröstningen</div>"
Response.Write "<form action="""&Request.ServerVariables("SCRIPT_NAME")&"?vad=modifieratklart&id="&arrRecords(0,I)&""" method=""post"">"
Response.Write "<input type=""text"" value="""&arrRecords(1,0)&""" name=""question"" style=""border: 1px solid; font-family: verdana; font-size: 12px""><br /><br />"
For I=0 to UBound(arrRecords,2)
Response.Write "<input type=""text"" value="""&arrRecords(4,I)&""" name="""&I+1&""" style=""border: 1px solid; font-family: verdana; font-size: 12px""><br />"
Next
Response.Write "<br /><INPUT TYPE=""submit"" VALUE=""Spara ändringar"" style=""border: 1px solid; font-family: verdana; font-size: 10px; width: 135px"">"
Response.Write "</form>"
RecSet.Close
Set RecSet = Nothing
Else
Response.Write "Finns inga poster i databasen."
RecSet.Close
Set RecSet = Nothing
End If
ElseIf Request.QueryString("vad") = "modifieratklart" Then
counter = 0
For Each fld In Request.Form
If Request.Form( fld ) <> "" Then
counter = counter + 1
End If
Next
counter = counter - 1
'Response.Write counter
Connect.Execute "UPDATE Poll_questions SET nom = '"&Request.Form("question")&"' WHERE id = "&Request.QueryString("id")
tal = 0
For i = 0 to counter
tal = tal + 1
Uppdatera = "UPDATE Poll_answers SET nom = '"&Request.Form(tal)&"' WHERE attachment = "&Request.QueryString("id")
'Response.Write Uppdatera
'Response.End
Connect.Execute str
Next
:)
Nu är jag jättejobbig, men så är det när man inte är proffs..
Du tror inte du kan posta en kopia av den färdiga html-kod som formuläret är i?
np:
<html>
<head>
<title> Rubrik</title>
<link rel="stylesheet" type="text/css" href="../includes/stylesheet.css">
</head>
<body>
<a href="inloggad.asp"><img src="../grafik/rubriker/administrationssystem.gif" border="0" /></a>
<table width="780" cellpadding="15" height="100%">
<tr>
<td bgcolor="#000000" height="1" colspan="2"></td></tr>
<tr>
<td width="200" bgcolor="#ebebeb" class="vanligtext" valign="top">
Modifiering av funktioner:
<br />
» <a href="uppdateringar.asp" class="inbakadlank">Modifiera uppdateringar</a>
<br />
» <a href="omrostningar.asp?vad=visa" class="inbakadlank">Modifiera omröstningar</a>
<br /><br />
Granskningsfunktioner:
<br />
» <a href="databaser.asp" class="inbakadlank">Granska databasen</a>
</td>
<td width="580" class="vanligtext" valign="top">
<div class="underrubrik">Modifiera omröstningen</div><form action="/v2/admin/omrostningar.asp?vad=modifieratklart&id=26" method="post"><input type="text" value="Fråga1" name="question" style="border: 1px solid; font-family: verdana; font-size: 12px"><br /><br /><input type="text" value="Svar44" name="1" style="border: 1px solid; font-family: verdana; font-size: 12px"><br /><input type="text" value="Svar44" name="2" style="border: 1px solid; font-family: verdana; font-size: 12px"><br /><input type="text" value="Svar44" name="3" style="border: 1px solid; font-family: verdana; font-size: 12px"><br /><input type="text" value="Svar44" name="4" style="border: 1px solid; font-family: verdana; font-size: 12px"><br /><br /><INPUT TYPE="submit" VALUE="Spara ändringar" style="border: 1px solid; font-family: verdana; font-size: 10px; width: 135px"></form>
</body>
</html>
</td>
</tr>
</table>
</body>
</html>
:)
Hm, det som händer nu är ju att du ger nom först ett värde från ett formfält sen kör du en next och ger samma fält ett annat formulärsvärde.
Jag la till ett hidden-fält till vart svar med dess id i och sedan ett extra kravi SQL-frågan. Problemet är bara:
For i = 0 to counter
tal = tal + 1
buildHidden = "id"&tal
Response.Write buildHidden
Connect.Execute = "UPDATE Poll_answers SET nom = '"&Request.Form(tal)&"' WHERE attachment = "&Request.QueryString("id")&" AND id = '"&Request.Form(buildHidden)
'Response.Write Uppdatera
'Response.End
Next
id1
Microsoft JET Database Engine error '80040e14'
Syntax error in string in query expression 'attachment = 26 AND id = '57'.
/v2/admin/omrostningar.asp, line 141
... jag måste ju använda '' eftersom namnet på formuläret är en sträng, men sedan blir det fel eftersom dess värde är numeriskt. Eller? :q
Hur kommer jag runt detta?
:)
jag måste ju använda '' eftersom namnet på formuläret är en sträng,
Det har inget med det att göra. Det har att göra med fälttypen. Är det ett textfält, så måste du lägga till en apostrof efter det id:t. Är det ett talfält, släng bort apostrof.
mvh,
Hallå trexter,
tittade lite på html koden du skickade med i tidigare inlägg... Ett sätt är att ha en checkbox vid varje svarsformulär. Ex. Där checkboxen är kryssad så "insertar" du till databasen.
Kolla PatrikBs exempel. Det är en snabb och enkel lösning som du får bygga om lite får att få den att fungera för dig. http://www.webforum.nu/showthread.php?s=&postid=44673#post44673
Kanske fattade fel och detta inte är en bra lösning alls.. :OO
Någon som kan håva fram lite kod utifrån det jag gett er ty nu är jag väldigt förvirrad... :l
Jag har följande kod men när jag ska modifiera en omröstning med två svarsalternatv så läggs först frågan in, sedan första svaret... och sedan frågan igen! :|
ElseIf Request.QueryString("vad") = "modifieratklart" Then
counter = 0
For Each fld In Request.Form
If Request.Form( fld ) <> "" Then
counter = counter + 1
End If
Next
counter = counter - 1
'Response.Write counter
Connect.Execute "UPDATE Poll_questions SET nom = '"&Request.Form("question")&"' WHERE id = "&Request.QueryString("id")
tal = 0
For i = 0 to counter
tal = tal + 1
buildHidden = "id"&tal
If Request.Form(buildHidden) <> "" Then
Response.Write buildHidden & "<br />"
Connect.Execute "UPDATE Poll_answers SET nom = '"&Request.Form(tal)&"' WHERE attachment = "&Request.QueryString("id")&" AND id = "&Request.Form(buildHidden)
'Response.Write Uppdatera
'Response.End
Else
Exit For
End If
Next
peppar: jag tror jag vill få detta att fungera istället men tack ändå.
:)
Jippii, jag fick det att fungera. Felet var att fälten inte kunde heta bara 1, 2, 3 osv. Då förstod inte ASP:n att jag vill hämta ett formulär-värde som hette så utan att jag ville hämta första variabeln i Request.Form eller liknande...
jag vet inte riktigt.
Hur som helst. Nu fungerar det.
:)