webForumDet fria alternativet

Variabel i Request.Form?

30 svar · 594 visningar · startad av trexter.com · sida 2 av 2

solbulleMedlem sedan mars 20015 287 inlägg
#21

Posta formulärskoden kanske då?

trexter.comMedlem sedan apr. 20021 203 inlägg
#22
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

:)

solbulleMedlem sedan mars 20015 287 inlägg
#23

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?

trexter.comMedlem sedan apr. 20021 203 inlägg
#24

np:


<html>
<head>
<title>&nbsp;&nbsp;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>

:)

solbulleMedlem sedan mars 20015 287 inlägg
#25

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.

trexter.comMedlem sedan apr. 20021 203 inlägg
#26

Hur förslår du att jag fixar det då?

:)

trexter.comMedlem sedan apr. 20021 203 inlägg
#27

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?

:)

@ndersMedlem sedan juni 200032 969 inlägg
#28

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,

pepparMedlem sedan dec. 2001873 inlägg
#29

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

trexter.comMedlem sedan apr. 20021 203 inlägg
#30

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å.

:)

trexter.comMedlem sedan apr. 20021 203 inlägg
#31

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.

:)

138 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)