Jag är nybörjare på asp och har två problem med en gästbok. Koden är till största delen tagen från en artikel på Pelleosoft. <code> Om du postar från sidan till sig själv och gör Inserten innan du skriver ut posterna så kommer gästboken innehåla även det nyinlagda posten. Det gör jag inte. Gästboksidan, den som listar alla poster öppnar först. Sedan om man vill skriva så öppnas ett litet fönster med ett formulär. Gästboksidan är då alltså öppen. Det är ju enklast att lääfa inmatningsformuläret överst och/eller underst i gästboken. Får kanske ta och göra det då. Lägg till följande kod i body-taggen på sidan som lägger till posten i databasen för att uppdatera gästboken: Jag gjorde som Andreas föreslog och la formuläret på samma sida som gästboken och då fungerar det som jag vill :-)Uppdatera sida efter att ha lagt till en post.
En testsida ligger på http://www32.brinkster.com/myplaceonweb/theguestbook.asp
Problem ett är att jag vill att posterna på sidan ska uppdateras efter att man skrivet i gästboken. Som det är nu så måste man ladda om sidan för att få med den nyss inlagda posten.
Problem två är att jag vill ha en lite tackrad om man har skrivet i gästboken. Typ "Tack Oskar för att du skrev i gästboken". Detta försökte jag lösa genom att lägga in en respons.write i sist i If-satsen. Dett fungerade inte så jag tog bort raden igen.
Aspkoden jag använder är:
<%
'Öppnar databasen
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("guest.mdb")
'Öppnar querystringen som sparar meddelandet
If Request.Querystring("page") = "save" Then
'Sparar meddelandet
Writer = Request.Form("Writer")
IP = Request.ServerVariables("REMOTE_ADDR")
MessageDate = Date
WriterEmail = Request.Form("WriterEmail")
WriterHomepage = Request.Form("WriterHomepage")
Message = Request.Form("Message")
SQL = "Insert into guestbook(Writer,IP,MessageDate,WriterEmail,WriterHomepage,Message) Values ('"& Writer &"','"& IP &"','"& MessageDate &"','"& WriterEmail &"','"& WriterHomepage &"','"& Message &"')"
Conn.Execute(SQL)
End If
%>
Tacksam för hjälp
Peter MöllerbergSv: Uppdatera sida efter att ha lagt till en post.
'Öppnar databasen
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("guest.mdb")
'Öppnar querystringen som sparar meddelandet
If Request.Querystring("page") = "save" Then
'Sparar meddelandet
Writer = Request.Form("Writer")
IP = Request.ServerVariables("REMOTE_ADDR")
MessageDate = Date
WriterEmail = Request.Form("WriterEmail")
WriterHomepage = Request.Form("WriterHomepage")
Message = Request.Form("Message")
SQL = "Insert into guestbook(Writer,IP,MessageDate,WriterEmail,WriterHomepage,Message) Values ('"& Writer &"','"& IP &"','"& MessageDate &"','"& WriterEmail &"','"& WriterHomepage &"','"& Message &"')"
Conn.Execute(SQL)
Response.Write "<script>alert(""Tack för att du skrev i min gästbok!"");window.location=""DINSIDA.ASP"";</script>"
else
'Visa alla inlägg
End If
%>
</code>Sv: Uppdatera sida efter att ha lagt till en post.
Sv: Uppdatera sida efter att ha lagt till en post.
När man har skrivet så skickas det tillbaka till gästboksidan. Problemet är att den då måste uppdateras och det är det jag inte får kläm på.
Trycker jag på uppdatera i browsern så dyker posten upp.
Detta är kanske inget smart sätt att ha det på men jag tyckte det såg bra ut och ville försöka.
Titta gärna på länken för att se hur det är tänkt att se ut.
http://www32.brinkster.com/myplaceonweb/theguestbook.asp
Tacksam för att ni bryr er.
/PeterSv: Uppdatera sida efter att ha lagt till en post.
Slipper användaren klicka på en länk för att lägga till. Uppdateras när man postar. Dessutom kan man använda samma anslutning för att lägga till lista posterna. Sv: Uppdatera sida efter att ha lagt till en post.
Men det är sådär när man är nybörjare, man startar utan att veta vilket som är lättast.
Tyckte dock att detta skulle se snyggt ut.
Men är det svårt att få sidan att uppdateras?
/PeterSv: Uppdatera sida efter att ha lagt till en post.
<code>
onload="opener.location.reload(true)"
</code>
Vill du även stänga fönstret efter att posten lagts till, skriv följande:
<code>
<script language="JavaScript">
<!--
window.close();
//-->
</script>
</code>
Lycka till.
/BrattenSv: Uppdatera sida efter att ha lagt till en post.
Tycker dock att det borde fungera som jag först ville också men det får jag ta senare.
Tack för hjälpen....
/Peter