webForumDet fria alternativet

Formulär och skript på samma sida

ASP

8 svar · 569 visningar · startad av glidarn

Medlem sedan aug. 200228 inlägg
Frågan#1

Vad är det som är fel i den här koden? Tanken är att lägga till en ny rad i tabellen "news" i databasen db, som sedan läses från sidan news.asp. När jag klickar på submitknappen ska fltet "newslatest" skickas till skriptet på samma sida som heter update.asp. Fick det att funka med formuläret och skriptet på olika sidor men inte på samma.

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<html>
<head>
<title>uppdatera nyhetssidan</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<%
If Request.Form("btnSubmit") Then
%> 
<!-- #include virtual="adovbs.inc" -->
<%

	Set Conn = Server.CreateObject("ADODB.Connection")
	Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.MapPath("db.mdb") 

	Set RecSet = Server.CreateObject("ADODB.Recordset")
   	RecSet.Open "news", Conn, adOpenStatic, adLockOptimistic
	
	'Skapa ny post i recordsetet
	RecSet.AddNew
	
	'Lägg in den nya posten
	RecSet("newslatest") = Request.Form("newslatest")
	latestnews = RecSet("newslatest")
	
	Response.Write "<font color=""#CC3333"">Nyhetssidan har uppdaterats med: </font><br><br> " & latestnews
	Response.Write "<br> <a href=""news.asp""><font color=""#CC3333"">Kolla alla poster</font></a>"
	
	'Uppdatera databasen med den nya posten
	RecSet.Update
	RecSet.Close
	Conn.Close
%>	
<% Else %>
<form action="update.asp" method="post" name="newsupdate" id="newsupdate">
  <textarea name="newslatest" cols="50" rows="5" id="newslatest"></textarea>
  <br>
  <input name="btnSubmit" type="submit" id="btnSubmit" value="skicka">
</form>
<% End If %>
</body>
</html>
Medlem sedan dec. 2000557 inlägg
#2

Tycker det saknas en del i din kod..

Testa den här istället:

[RED]<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<html>
<head>
<title>uppdatera nyhetssidan</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>

<%

If Len(trim(Request.Form("newslatest"))) > 0 Then

	strLatestNews = trim(Request.Form("newslatest"))
	strLatestNews = Replace(strLatestNews, "'", "''")
	strLatestNews = Replace(strLatestNews, "|", "")

	Set Conn = Server.CreateObject("ADODB.Connection")
	Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& Server.MapPath("db.mdb") 
	Conn.Execute("INSERT INTO [b]tabell[/b](newslatest) VALUES('"& strLatestNews &"')"),,128
	Conn.Close : Set Conn = Nothing
	
	Response.Write ""&_
	"<font color=""#CC3333"">Nyhetssidan har uppdaterats med: </font><br><br>"&_
	""& strLatestNews &"<br><a href=""news.asp""><font color=""#CC3333"">Kolla alla poster</font></a>"
	

Else %>

	<form action="[b]update.asp[/b]" method="post" name="newsupdate" id="newsupdate">
	<textarea name="newslatest" cols="50" rows="5" id="newslatest"></textarea>
	<br>
	<input name="btnSubmit" type="submit" id="btnSubmit" value="skicka">
	</form>

<% End If %>

</body>
</html>[/RED]

/r: Ändra det som står i fet stil så det passar in i ditt sammanhang.

Medlem sedan aug. 200228 inlägg
#3

Funkar bra. Förresten, om jag vill ha en textlänk istället för submitknappen hur skriver jag då?

Medlem sedan juni 200032 967 inlägg
#4

<a href="#" onclick="document.newsupdate.submit();">skicka</a>

mvh,

Medlem sedan aug. 200228 inlägg
#5

Jo just det. Om jag på samma sida vill ha flera formulär som alla kör olika skript efter ett klick på respektive submitknapp?

Medlem sedan dec. 20002 526 inlägg
#6

Det ar bara att kolla med if-sats vilken knapp man tryckte pa, sag att den ena heter "Uppdatera" och en annan heter "Nytt" da kan man gora sa har....:

If request.form("knapp") = "Uppdatera" then
'update
else
insert...

hanger du med? :)

Medlem sedan aug. 200228 inlägg
#7

Hänger nästan med, ska namnet på formuläret in där det står "knapp" i koden:
If request.form("knapp") = "Uppdatera" then

Medlem sedan mars 20015 287 inlägg
#8

Namnet på knappen va? Alltså namnet på din submitbutton.

Medlem sedan aug. 200228 inlägg
#9

Ok. Om formuläret heter news, textfältet latestNews och knappen submitNews. Vad ska in var och vad behövs inte?

256 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)