to mindre problemer, men alligevel lidt svært for mig
Jeg har en asp chat, som er opdelt i frames. Kan ses på http://www.dvtk.dkDen ene ting jeg gerne vil have den til, er at når man i bunden vælger den person man vil skrive privat til, skriver en besked - bunden reloader - og så skal dropdownen have selected den værdi du sidst valgte, og ikke gå tilbage til Alle.
Mit andet er at i selve chatmain vinduet hvor beskederne kommer op, vil jeg gerne gå væk fra meta-refresh hvert x antal sekunder, til at den kun opdatere hvis der er noget at opdatere (beskeder, login og logouts...)
Jeg ved ikke hvordan dette kan laves, og om det er muligt.
Her kommer der lidt kode:
Chat_bund.asp:
<% Response.Buffer = True %>
<link rel=stylesheet href=\"chat.css\" type=\"text/css\">
<body bgcolor=\"#FFFFFF\" onload=\"document.form.besked.focus()\">
<!--#include file=function.asp-->
<form method=post action=chat_bund.asp name=form>
<select name=modtager class=form>
<option selected value=Alle>Alle</option>
<%
Set Conn = CreateObject(\"ADODB.Connection\")
Conn.Open \"PROVIDER=MSDASQL;DRIVER={Microsoft Access Driver (*.mdb)};DBQ=\" & Server.MapPath(\"chatten.mdb\")
Sql = \"Select * from online order by navn\"
Set rs = Conn.Execute(sql)
Do until rs.eof
%>
<option value=<%=rs(\"navn\")%>><%=rs(\"navn\")%></option>
<%
rs.movenext
loop
rs.close
Set rs = nothing
Conn.Close
Set Conn = Nothing
%>
</select>
<input type=text name=besked class=form size=80><input type=submit class=form value=Send></form>
<input class=form type=submit value=Logud onclick=\"top.location=\'default.asp\'\">
<% if Request.ServerVariables(\"REQUEST_METHOD\") = \"POST\" then
modtager = Request.form(\"modtager\")
navn = Session(\"navn\")
besked = Replace(replace(request.Form(\"Besked\"),\"<\",\"<\"),\">\",\">\")
fontcolor = Request.form(\"fontcolor\") %>
<%=chat(modtager, navn, besked, fontcolor)%>
<% response.redirect(\"chat_bund.asp\") %>
<% end if %>
--------
function.asp:
<%
function chat(modtager, afsender, besked, fontcolor)
Set Conn = Server.CreateObject(\"ADODB.Connection\")
Conn.Open \"PROVIDER=MSDASQL;DRIVER={Microsoft Access Driver (*.mdb)};DBQ=\" & Server.MapPath(\"chatten.mdb\") & \"\"
Set rs = Server.CreateObject(\"ADODB.Recordset\")
chatSQL = \"Select * from chat\"
rs.Open chatSQL, Conn, 1, 3
rs.addnew
rs(\"modtager\") = modtager
rs(\"afsender\") = afsender
rs(\"besked\") = besked
rs(\"fontcolor\") = fontcolor
rs.update
rs.close
Set rs = nothing
Conn.close
Set conn = nothing
end function
function logud(chatnavn)
Set Conn = Server.CreateObject(\"ADODB.Connection\")
Conn.Open \"PROVIDER=MSDASQL;DRIVER={Microsoft Access Driver (*.mdb)};DBQ=\" & Server.MapPath(\"chatten.mdb\") & \"\"
Set rs = Server.CreateObject(\"ADODB.Recordset\")
logudSQL = \"Select * from online where navn = \'\" & chatnavn & \"\'\"
rs.Open LogudSQL, Conn, 1, 3
rs.delete
rs.close
Set rs = nothing
Conn.close
Set conn = nothing
end function
function login(navn)
if navn = \"\" then
login = \"<font class=8>Du skal skrive et navn</font>\"
else
Set Conn = Server.CreateObject(\"ADODB.Connection\")
Conn.Open \"PROVIDER=MSDASQL;DRIVER={Microsoft Access Driver (*.mdb)};DBQ=\" & Server.MapPath(\"chatten.mdb\") & \"\"
Set rs = Server.CreateObject(\"ADODB.Recordset\")
LoginSQL = \"Select * from online where navn = \'\" & Request.form(\"navn\") & \"\'\"
rs.Open LoginSQL, Conn, 1, 3
if Rs.bof or eof then
rs.Addnew
rs(\"navn\") = Request.form(\"navn\")
rs(\"time\") = Time()
rs.update
Session(\"navn\") = Request.form(\"navn\")
Set ChatConn = Server.CreateObject(\"ADODB.Connection\")
ChatConn.Open \"PROVIDER=MSDASQL;DRIVER={Microsoft Access Driver (*.mdb)};DBQ=\" & Server.MapPath(\"chatten.mdb\") & \"\"
Set chatrs = Server.CreateObject(\"ADODB.Recordset\")
chatSQL = \"Select * from chat\"
chatrs.Open chatSQL, ChatConn, 1, 3
chatrs.addnew
chatrs(\"modtager\") = \"Alle\"
chatrs(\"afsender\") = \"Chatten\"
chatrs(\"besked\") = \"\" & Request.form(\"navn\") & \" er logget ind klokken \" & Time() & \"\"
chatrs(\"fontcolor\") = \"#0000FF\"
chatrs.update
chatrs.close
ChatConn.close
Set Chatconn = nothing
Response.Redirect(\"chat_frame.asp\")
else
login = \"<font class=8>Der er en bruger med det navn<br>logget på med det ønskede navn<br><br></font>\"
end if
rs.close
Set rs = nothing
Conn.close
Set conn = nothing
end if
end function
function showchat
Set Conn = Server.CreateObject(\"ADODB.Connection\")
Conn.Open \"PROVIDER=MSDASQL;DRIVER={Microsoft Access Driver (*.mdb)};DBQ=\" & Server.MapPath(\"chatten.mdb\") & \"\"
Set rs = Server.CreateObject(\"ADODB.Recordset\")
showchatSQL = \"Select top 25 * from chat where modtager = \'Alle\' OR modtager = \'\" & session(\"navn\") & \"\' OR afsender = \'\" & session(\"navn\") & \"\'order by id DESC\"
rs.Open showchatSQL, Conn, 1, 3
Do until rs.eof
%>
<%
if rs(\"modtager\") <> \"Alle\" then %>
<% if rs(\"afsender\") = Session(\"navn\") then %>
<font face=verdana size=2 color=red><b>Du fortæller <%=rs(\"modtager\")%>:</b> <%=rs(\"besked\")%></font><br>
<% else %>
<font face=verdana size=2 color=red><b><%=rs(\"afsender\")%> fortæller dig:</b> <%=rs(\"besked\")%></font><br>
<% end if %>
<% else %>
<font face=verdana size=2 color=<%=rs(\"fontcolor\")%>><b><%=rs(\"afsender\")%>:</b> <%=rs(\"besked\")%></font><br>
<%
end if
rs.movenext
loop
rs.close
Set rs = nothing
Conn.close
Set conn = nothing
end function
function showusers
Set Conn = Server.CreateObject(\"ADODB.Connection\")
Conn.Open \"PROVIDER=MSDASQL;DRIVER={Microsoft Access Driver (*.mdb)};DBQ=\" & Server.MapPath(\"chatten.mdb\") & \"\"
Set rs = Server.CreateObject(\"ADODB.Recordset\")
showusersSQL = \"Select * from online \"
rs.Open showusersSQL, Conn, 1, 3
Do until rs.eof
%>
<font size=2 face=verdana><%=rs(\"navn\")%></font><br>
<%
rs.movenext
loop
rs.close
Set rs = nothing
Conn.close
Set conn = nothing
end function
function sdelete_non_active_users
Set Conn = Server.CreateObject(\"ADODB.Connection\")
Conn.Open \"PROVIDER=MSDASQL;DRIVER={Microsoft Access Driver (*.mdb)};DBQ=\" & Server.MapPath(\"chatten.mdb\") & \"\"
Set rs = Server.CreateObject(\"ADODB.Recordset\")
deleteSQL = \"Delete * from online\"
rs.Open deleteSQL, Conn, 1, 3
rs.close
Set rs = nothing
Conn.close
Set conn = nothing
end function
%>
------------------
chat_main.asp:
<% Response.Buffer = True %>
<meta http-equiv=refresh content=5>
<link rel=stylesheet href=\"chat.css\" type=\"text/css\">
<body bgcolor=\"#FFFFFF\">
<!--#include file=function.asp-->
<%=Showchat%>
<%=Delete_non_active_users%>
