webForumDet fria alternativet

Svara i min gästbok!

ASP

5 svar · 333 visningar · startad av magnusfernstrom

Medlem sedan mars 20033 686 inlägg
Frågan#1

Nu har jag kommit så längt att jag nu kan ta bort meddelanden! Men jag vill även kunna svara på meddelanden! Jag har suttit och knåpat i nån timme nu och fått detta resultat:

<html>
<form namne="Skicka" method="post" action="vali.asp">
<br>
Namn:
<br>
<input type="text" name="Namn" size="22">
<br>
Epost:
<br>
<input type="text" name="Epost" size="22">
<br>
Meddelande:
<br>
<textarea rows="6" cols="40" name="Meddelande"></textarea>
<br>
<input type="submit" value="Posta" name="Posta">
</form>
<%
Set db = Server.CreateObject("ADODB.Connection")
db.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath ("db/block.mdb")
SQL = "SELECT * FROM Test"
Set rs = db.Execute(SQL)
%>
<%
Do Until RS.EOF
%>
<%=rs("Namn")%>
<br>
<%=rs("Epost")%>
<br>
<%=rs("Meddelande")%>
<br>
<br>
<%=rs("Svar")%>
<a href="delete.asp?id=<%= rs("Id") %>">Radera</a>
<br>
<form name="Svara" method="post" action="svar.asp?id=<%= rs("Id") %>">
<input type="text" name="Svar">
<br>
<input type="submit" name="Svarknapp" value="Svara!">
</form>
<hr>
<br>
<%
rs.MoveNext
Loop
db.Close
%>

Detta är alltså själva gästboks sidan!
Detta är sidan man skickas til när ett svar har skrivits in:

<%
Id = Request.Querystring ("Id")
Set db = Server.CreateObject("ADODB.Connection")
db.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath ("db/block.mdb")
SQL = "Insert Into Test (Svar) VALUES ('" & Request.Form("Svar") & "')"& id
Set rs = db.Execute(SQL)
Set rs = nothing
Set db = nothing
response.redirect "test.asp"
%>

Jag får det att funka men svaret skrivs ut som ett eget nytt gästboks meddelande! Antar att detta har något med att den skapar ett nytt ID. Jag har försökt med att få med ID på meddelandet jag ska svara på. Men det vill dock inte fälja med :D

Kan någon hjälpa mig
Mycket tacksam för svar!
Mvh Magnus Fernström

Medlem sedan apr. 20003 174 inlägg
#2

Det räcker med att du uppdaterar posten med ditt svar (UPDATE),
du behöver inte skapa en helt ny post (INSERT). Ex:

[red]<%

Id = trim(Request.Querystring("Id"))
strSvar = Replace(Request.Form("Svar"), "'", "''")

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

		db.Execute("UPDATE Test SET Svar='"& strSvar &"' WHERE ID="& Id),,128

	db.Close
Set db = nothing

response.redirect "test.asp"

%>[/red]

Några tips: :)

  1. Byt från Access Driver till Jet.OLEDB
  2. Du behöver inte skapa ett recordset för att spara, uppdatera eller radera data från databasen.
Medlem sedan mars 20033 686 inlägg
#3

Aha ok tack för ett mycket bra svar Palle
Mvh

Medlem sedan mars 20033 686 inlägg
#4

Det funkar!!! Tack igen!

Medlem sedan apr. 20003 174 inlägg
#5

Np! :bire

Medlem sedan mars 20033 686 inlägg
#6

Det fixade sig tack igen :D

268 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
130 ms — deklarationer (db)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)
129 ms — ändringar (db)