Tree structure (2)

xiaoxiao2021-03-06  44

Realization: With a routing field (sorted by characters), the actual length of this field is the reply depth (when a character represents a layer depth). Restriction: The reply depth is only limited by the sequencing string defined (a bit like space change depth), and each post-reply number (including root stickers and sub-stickers) is 30 (when SQL Server uses Dictionary Order, Case-Insensitive sorting method, That is, when the letter case is not distinguished), if SQL Server uses a binary order, it is limited to 127 (255?). Improvement method: If you feel that you don't have enough, you can use multiple characters to correspond to a depth (this calculation is a bit trouble), or use several digits represent a depth, such as 3 digits ?? You can 999 posts, but some sort fields The length should be "3 * maximum depth") Advantages: This method is uniform.

Fields related to tree: rootid, Orderstr (VARCHAR type, depth as needed, if you want to use 20 layers of reply, it is routed as varchar (20), after the residual push)

For example: (below the ordering of Order by rootid (1-sign (rootid)) * lybid desc, orderrstr, id dec ___________________3 1 y ?? Reply 1, reduce the last character z of the sorting string of the next to 1, constitute a new sort string.

Sorting results are: ID rootid orderrstr1 0 empty string 3 1 y2 1 z___________________4 1 x ?? Reply 1 post, sorting string begins

The row results: ID rootid orderstr1 0 Empty string 4 1 x3 1 y2 1 z__________________5 1 xz ?? Reply 4 post, check 4 stickers already have a reply, now, the initialization sage second character (add Z after 4 )

Sort result is: ID rootid orderrstr1 0 Empty string 4 1 x5 1 xz3 1 y2 1 z____________________________6 1 XY ?? Reply 4 post, the first character of the first child of 4 stickers is reduced by 1 ASCII code minus 1

Sorting results: id rootid orderrstr1 0 Empty string 4 1 x6 1 xy5 1 xz3 1 y2 1 z

In this way, the tree structure is realized according to the order of ORDERSTR and LEN (ORDERSTR)? ID ORDERSTR1 Empty Strings 4 x 6 XY 5 XZ 3 Y 2 Z

Affixed stored procedure: if exists (select * from sysobjects where id = object_id ( "lybsave")) drop proc lybsaveCREATE PROCEDURE [lybsave] @keyid int = 0, @ guestname varchar (20), @ guestitle varchar (100), @ Guestcomm text, @ Guestemail Varchar (50) = ', @ emailflag bit = 0, @ fromip varchar (15), @ Recimail Varchar (50) OutputasDeclare @ostr varchar (30), @ rootid int, @ @ @ @ @ @ @ @ @ @ ostrs VARCHAR (30), @ @ l tinyint, @ Tdt DateTime, @ Putdate Varchar (10), @ Puttime Varchar (5), @ Eflag Bitslect @ TDT = Getdate () SELECT @ Putdate = Convert (VARCHAR (4), Datepart (YY , @ TDT)) '-' LEFT ('0' Convert (VARCHAR (2), DatePart (mm, @ TDT)), 2) '-' Left ('0' Convert (varchar (2 ), DatePart (DD, @ TDT)), 2) SELECT @ Puttime = Left ('0' Convert (VARCHAR (2), DATEPART (HH, @ TDT)), 2) ':' Left ('0 ' Convert (VARCHAR (2), DATEPART (MI, @ TDT)), 2) SELECT @ostr =', @ rootid = 0, @ @ = 0if (@ Guestemail = '') Select @ emailflag = 0If @ keyid = 0 - new stickers goto newinELSEbegin SELECT @ lybid = lybid, @ rootid = rootid, @ ostr = orderstr, @ recimail = guestemail, @ eflag = emailflag from guestbook where lybid = @ keyid IF @ lybid = 0 - Reply Post is not found When a new posted goto newin else becomi (@ EFLAG = 0 and @guestemail <> 'Swuse@21cn.com abc') Select @ Recimail = '' - If it is a moderator reply and specifies a message to ask questions, Whether the posser requires reply, the back ABC is equivalent to managing password if (@ rootid = 0) select @ rootid = @ ostr '%', @ \bid = 0 Select Top 1 @

lybid = lybid, @ ostrs = orderstr from guestbook where rootid = @ rootid and (orderstr like @ostrs) and lybid <> @ keyid order by orderstr if (@ lybid = 0) select @ ostr = @ ostr char (122) else Begin select @ l = len (@OSSTRS) SELECT @ ostr = left (@ ostrs, @ L-1) char (Substring (@ ostrs, @ L, 1)) - 1) End Goto newin endndnewin: Insert Into guestbook (guestname, guestitle, guestcomm, putdate, puttime, guestemail, emailflag, rootid, fromip, orderstr) values ​​(@ guestname, @ guestitle, @ guestcomm, @ putdate, @ puttime, rtrim (@guestemail), @ emailflag, @ rootid , @ fromip, @ ostr)

Delete the post (twig) stored procedure:

if exists (select * from sysobjects where id = object_id ( "lybdel")) drop proc lybdelCREATE PROCEDURE [lybdel] @keyid intASDECLARE @ostr varchar (30), @ rootid int, @ lybid intselect @ostr = ', @ rootid = 0 , @ lybid = 0SELECT @ ostr = orderstr, @ rootid = rootid, @ lybid = lybid from guestbook where lybid = @ keyidif (@lybid <> 0) BEGIN if (@ rootid = 0) select @ rootid = @ lybid SELECT @ostr @ @ ostr '%' delete from guestbook where orderrstr limited @ostr and rootid = @ rootid or @ rootid end

The following is a SQL statement that establishes the library structure (as an example of a simple tree message):

if exists (select * from sysobjects where ID = object_id ( "guestbook")) drop table guestbookgodrop table guestbookcreate table guestbook (lybid int identity (1,1), guestname varchar (40) NOT NULL, guestitle varchar (100) NOT NULL, GUESTCOMM VARCHAR (8000), Putdate Varchar (20), Puttime Varchar (10), Guestemail Varchar (50), Emailflag Bit, Rootid Int, Fromip Varchar (25), ORDERSTV VARCHAR (3)) Program Name: Savelyb.asp program function : Save the post content

<% postType = request ("posttype") Pageno = Request ("pageno") keyid = request ("keyid" if keyid = "" "" "" 0emailpost = request ( "emailpost") guestitle = trim (request.form ( "guestitle")) guestname = trim (request.form ( "guestname")) guestcomm = rtrim (request.form ( "guestcomm")) guestemail = request .form ("Guestemail" emailflag = request.form ("emailflag") if guest = "" or guestname = "" "or" "" or "" = "" "f" information is incomplete, the message must fill in the name and title

return refill "" then call posttomecall errmessage ( "



Thanks your message!

read a message ") session (" guestitle ") = guestitleguestconn .Closeset GuestConn = NothingResponse.endsub errmessage (message)%> Software uses a message to reply </ title> <style type = "text / css"> <! - a {text-Decoration : none} body {line-height: 18px; font-size: 10.5pt; font-family: Song} A: Hover {color: # ff0000; Text-Decoration: none} -> </ style> </ hEAD> <body topmargin = 16 background = 'TOPBG.GIF'> <% = message%> </ body> </ html> <% end sub</p> <p>Sub PostTome Guestcommmm = Replace (GuestComm, "," ") Guestcomm = Replace (GuestComm," <br> "," ") set mymail = server.createObject (" cdonts.newmail ") mymail.from = Guestemail MyMail.to = cm ( "@ recimail") myMail.Subject = guestitle & "?" & guestname myMail.body = guestcomm & vbCrLf & vbCrLf & "software Guestbook http://swuse.yeah.net" myMail.Send Set myMail = Nothingend sub %></p> <p>Program Name: Revert.asp program function: Reply form</p> <p><! - #nclude file = "lybcon.inc" -> <% Pageno = Request ("Pageno") Keyid = Request ("KeyID") PostType = Request ("Type") if posttype = "repert" THEN SET guestconn = Server.CreateObject ( "ADODB.connection") guestconn.Open lybstr set guestrs = server.createobject ( "ADODB.recordset") sqlstr = "SELECT * FROM guestbook where lybid =" & keyid guestrs.open sqlstr, guestconn, 1, 1 if Guestrs.eof Then Response.Redirect "Index.asp" end if%> <html> <head> <title> software uses a message to reply </ title> <style type = "text / css"> <! A {text-decoration: none} a: hover {color: # ff00} .submit {line-height: 9pt; font-size: 9pt; font-family: Song} TD {font-family: Song; Font-size: 9pt; Background-Color: ECF7FF} .td1 {font-family: Song; Font-size: 9pt; Background-Color: A2C8F2} .td2 {font-family: Song; Font-Size: 9pt; Background-Color: E9EDE0} .small1 {font-family: Song Body; Font-Size: 9pt; Background-Color: ffffff; line-height: 9pt} -> </ style> </ head> <body topmargin = 16> <form name = 'Revert 'method =' post 'action =' savelyb.asp '> <input type = hidden name = posttype value =' <% = posttype%>> <input TYP E = hidden name = Pageno value = <% = PAGENO% >> <table width = 100% align = center> <% if posttype = "repert" THEN%> <input type = hidden name = keyid value = <% = guestrs ("Lybid")% >> <tr style = "color: red"> <TD align = center class = 'td1' width = 70%> Message title </ td> <TD align = center width = 70 class = ' TD1 '> <img src ='</p> <p>Edit.gif '> Author </ td> <td align = center width = 100 Class =' ​​TD1 '> Published time </ td> <td align = center width = 60 class =' ​​TD1 'NOWRAP> post number of posts / TD> <td align = center width = 60 class = 'td1' nowrap> Post number </ td> </ tr> <tr> <td style = "color: red" align = center width = 80%> < % = GUESTRS ("Guest Ditle")%> </ TD> <TD align = Right Width = 70 NOWRAP> <% = Guestrs ("GuestName")%> </ td> <td width = 100 NOWRAP> <% = Guestrs ("Putdate") & "& Guestrs (" Puttime ")%> </ td> <TD align = Right Width = 60 NOWRAP> <% = LEN (GuestComm"))%> </ td> <TD Align = Right Width = 60 NOWRAP> <% = Guestrs ("lybid")%> </ td> </ tr> <tr> <td color: f3f7ff "Height = 50 valign = TOP > <% = GUESTRS ("GuestComm")%> <p align = right> [from: <% = Guestrs ("fromip")%>] </ p> </ td> </ tr> <% END IF% > <TD Width = 70> <TD Width = 70> </ TD> <TD Width = 100> </ TD> <TD Width = 60> </ TD> <TD Width = 60> </ TD > </ tr> <tr> <td height = 16 colspan = 5 style = "background-color: ffffff"> </ td> </ tr> <tr> <td> message title: <input type = 'text' Name = 'guestitle' size = '36 'maxlength =' 100 'class =' ​​small1 '> </ td> <td co LSPAN = 4> <input type = 'checkbox' name =</p> <p>'emailflag'> If you have a reply, please inform me </ td> </ tr> <tr> <td> online nickname: <input type = 'text' name = 'guestname' size = 36 maxlength = 20 class = 'small1' > </ td> <td colspan = 4> Email address: <input type = 'text' name = 'guestail' size = 25 maxlength = 50 class = 'small1'> </ td> </ TR> <TR> < TD colspan = 5 valign = Top Style = "Background-color: f3f7ff"> Message content: <textarea cols = 80 rows = 6 class = 'small1' name = 'guestcomm'> </ textarea> </ td> </ TR > <tr> <td colspan = 5 align = center> <a href="javascript:document.revert.submit();"> Send message </a> <a href = 'index.asp? Pageno = <% = Pageno%>> Abandon message </a> </ td> </ tr> </ table> </ form> </ body> </ html> <% if posttype = "repert" Then Guestrs.close set guestrs = Nothing guestconn = nothingEnd IF%> Program Name: Lybcon.inc Program Features: Database Connection Strings</p> <p><% lybstr = "provider = SQLOLEDB.1; password = password; Persist security info = true; user ID = sa; initial catalog = database name; data source = database server name; connection timeout = 15%> Note: At the moment Please use .asp as a connection string file name ?? Some servers do not specify the corresponding mapping for .inc files, so that you can see the .inc's file content! !</p> <p>Program Name: DelRec.asp program function: Delete post (twig)</p> <p><! - #nclude file = "lybcon.inc" -> <% flag = request ("flag") keyid = request ("keyid") PAGENO = Request ("PAGENO") Password = Request.form ("Password ") if flag =" 1 "THEN if password =" Your management password "THEN SET GUESTCONN = Server.createObject (" AdoDb.Connection ") Guestconn.CreateObject (" AdoDb.command ") SET cm.activeconnection = guestteconn cm.commandtext = "lybdel" cm.commandtype = 4 set p = cm.parameters p.append cm.createParameter ("@ keyid", 3, 1, 4) cm ("@ keyid") = keyid CM.Execute GuestConn.close set guestconn = nothing response.redirect "index.asp? Pageno =" & Pageno End IFEnd IF%> <HTML> <head> <title> Software Using Messages </ Title> <style type = " Text / CSS> <! - a {text-decoration: none} body {line-height: 18px; font-size: 9pt; font-family: Song} A: Hover {color: # ff0000; text-decoration: None} .submit; font-size: 9pt; font-family: Song} .submit1 {line-height: 8pt; font-size: 8pt; font-family: Song} .selectform {font-family : Song body; font-size: 9pt; background-color: ffe4e4} TD {font-family: Song; Font-Size: 9 Pt; Background-Color: ECF7FF} .td1 {font-family: Song; Font-Size: 9pt; Background-Color: A2C8F2} .td2 {font-Family: Song; Font-Size: 9pt; Background-Color: E9EDE0} .small1 {font-family: Song body; font-size: 9pt; background-color: ffffff; line-height: 9pt} -> </ style> </ head> <body topmargin = 16 background = 'Topbg.gif' > <br> <br> <br> <form name = 'manage' action = 'delrec.asp' method = 'post'> <input type = hidden name = 'flag'</p> <p>Value = '1'> <input type = hidden name = 'keyid' value = '<% = keyid%>> <input type = hidden name =' pageno 'value =' <% = Pageno%>> <table Width = 80% align = center> <tr> <TD align = right> Please enter the management password: </ td> <TD align = left> <input type = 'password' name = 'password' size = 20 class = ' Submit '> </ td> <TD align = center> <input type =' submit 'value =' Delete this message 'class =' ​​submit '> </ td> </ tr> </ table> </ form> program INDEX.ASP function: display directory tree</p> <p><! - #nclude file = "lybcon.inc" -> <% Pageno = Request ("Pageno") SearchType = Request ("SearchType") Searchnr = RTRIM (Request ("Searchnr") SET GUESTCONN = Server. CreateObject ( "ADODB.connection") guestconn.Open lybstrset guestrs = server.createobject ( "ADODB.recordset") sqlstr = "SELECT * FROM guestbook" if searchnr <> "" then sqlstr = sqlstr & "where" & searchtype & "like '% % "& Replace (Searchnr," '","' ") &" %% '"SQLSTR = SQLSTR &" Order by rootid (1-sign (rootid)) * lybid desc, ordererstr, lybid desc "Guestrs.open Sqlstr, GuestConn , 1,1rowcount = 25if pageno = "" then pageno = 1if not guestrs.eof then if IsNumeric (pageno) then guestrs.pagesize = rowcount if pageno 1> guestrs.pagecount 1 then pageno = guestrs.pagecount else pageno = 1 End if Guestrs.absolution = Pagenoelse Pageno = 1END IF%> <html> <head> <title> Software Using Messages </ Title> <style type = "text / css"> <! - a {text-decoration: None} body {line-height: 18px; font-size: 9pt; font-family: Song} A: Hover {color: # ff0000; text-decoration: none} .submit {line-height: 9pt; font-size: 9pt; font-family: Song} .submit1 {Line-height: 8pt; font-limited: Song} .selectform {font-family: Song; Font-size: 9pt; Background-Color: ffe4e4} td {font-family: Song; font- Size: 9pt; background-color: ECF7FF} .td1 {font-family: Song; Font-size: 9pt; Background-Color: A2C8F2} .td2 {font-family: Song; Font-Size: 9pt; Background-Color: E9EDE0} .small1 {font-family: Song; Font-size: 9pt; Background-Color: ffffff; line-height: 9pt} -> </ style> <script language =</p> <p>JavaScript1.2 "> Function D (SP, T, A, D, Ti, L, ID, RID, PN) {document.write (" <tr> <TD> " SP " <a href = 'Disprec.asp KEYID = " ID " & rootid = " rid " & Pageno = " Pn " " T " </a> </ td> "); Document.write (" <TD align = Right> " a "</ td>"); Document.write ("<TD NOWRAP Align = Center>" D "" Ti "</ TD>"); Document.write ("<TD align = Right> L " </ td> "); Document.write (" <TD Align = Right> " " </ TD> "); Document.write (" </ TR> ");} </ script> </ head> <body topmargin = 16> <form name = 'index' method = 'post' action = 'index.asp'> <table width = 100% align = center> <tr> <td align = center style = 'font-size : 16px; Background-Color: ffffff; color: red 'height = 35 valign = top> Software uses a message list </ td> <TD align = center colspan = 3 style =' font-size: 13px; Background-Color: ffffff 'Valign =' bottom '> A total of <font style =' font-size: 16px; color: red '> <% = guestrs.recordcount%> <font> strip message <font style =' font-size: 16px; color : Red '> <% = Guestrs.pageCount%> </ font> page Currently <Font Style =' font-size: 16px; color: red '> <% = Pageno%> </ font> page </ td> <TD Style = 'Background-Color: ffffff' Valign = Bottom> <a href = "/ wen / swuse LYB / INDEX.ASP "> The old message is whisper </a> </ td> </ tr> <tr> <td class = 'td2'</p> <p>Align = 'center'> Search Post <select name = 'searchtype' class = 'small1'> <option value = 'guestname' <% if searchtype = "guestname" Then Response.write ("SELECTED")% >> Post Author </ OPION> <option value = 'guestcomm' <% if SearchType = "guestcomm" the response.write ("SELECTED")% >> Post content </ opion> </ select> <input type = 'Text 'name =' searchnr 'size = 14 class =' ​​small1 'value =' <% = SearchnR%>> <a href='javascript: document.index.submit();'> Start search </A> </ TD> <TD colspan = 3 class = 'td2' align = 'center'> <% IF Pageno 1> 2 THEN%> <a href = 'javascript: Document.index.Pageno.Value -; Document.index. Submit (); '> Previous </a> <% else%> Previous <% end if%> <% if Pageno 1 <guestrs.pagecount 1 THEN%> <a href =' javascript: Document .index.pageno.value ; Document.index.Submit (); '> Next </a> <% else%> Next page <% end if%> to <input type =' text 'name =' Pageno 'size = 6 class =' ​​small1 'value = <% = Pageno% >> Page </ td> <td class =' ​​td2 'align = center> <a href='revert.asp?type=post' posted Child </a> </ td> </ tr> <tr style = "color: red"> <td align = center class = 'td1'> message title </ td> < TD align = center width = 70 class = 'td1'> <img src = 'edit.gif'> author </ td> <td align = center width = 100 Class = 'TD1'</p> <p>> Posted by </ TD> <TD Align = Center Width = 60 Class = 'TD1' NOWRAP> Post Word Number </ TD> <TD Align = Center Width = 60 Class = 'TD1' NOWRAP> Post Number </ TD > </ Tr> <% do while true if Guestrs.eof kil = 0 Then EXIT DO GUESTRS.MOVENEXTLOOPDO While Not Guestrs.eof and RowCount> 0%> <script> d ('< % = Replace (Space ("" "" ""))), "", "")%>, '<% = GUSTRS ("Guestitle")%>', '<% = GUESTRS (" ")")%> ',' <% = GUESTRS ("Putdate")%>, '<% = Guestrs ("PUTTIME")%>, <% = len (GuestComm "))%>, <% = GUESTRS ("Lybid")%>, <% = Guestrs ("rootid")%>, <% = PAGENO%>) </ script> <% rowcount = rowcount-1gues.movenextif Not Guestrs.eof Then IF guestrs ( "rootid") <> 0 and rowcount = 0 then rowcount = 1end ifloopguestrs.closeset guestrs = nothingguestconn.closeset guestconn = nothing%> </ table> </ form> <br> <br> <br> </ body > </ html> program: DispRec.asp features: Display Post Content</p> <p><! - #nclude file = "lybcon.inc" -> <% keyid = request ("keyid") rootid = request ("rootid") Pageno = Request ("Pageno") if rootid = 0 Then rootid = keyidset guestconn = Server.CreateObject ( "ADODB.connection") guestconn.Open lybstrset guestrs = server.createobject ( "ADODB.recordset") sqlstr = "SELECT * FROM guestbook where lybid =" & rootid & "or rootid =" & rootidsqlstr = sqlstr & "order By ORDERSTR, LYBID DESC "Guestrs.open Sqlstr, GuestConn, 1, 1%> <html> <head> <title> software Using Messages </ Title> <style type =" text / css "> <! - a {Text-decoration: none} body {line-height: 18px; font-size: 9pt; font-family: Song} a: hover {color: # ff0000; Text-Decoration: none} td {font-family: Song; FONT-SIZE: 9pt; Background-Color: ECF7FF} .td1 {font-family: Song; Font-Size: 9pt; Background-Color: A2C8F2} .td2 {font-family: Song; Font-size: 9pt; Background Color: E9EDE0} .small1 {font-family: Song; Font-size: 9pt; Background-Color: ffffff; line-height: 9pt} -> </ style> </ head> <body topmargin = 16 background = ' Topbg.gif '> <form name =' index 'method =' post 'action =' index.asp '> <table width = 100% align = CE NTER> <TR> <TD align = center style = 'font-size: 16px; Background-color: ffffff; color: red' height = 35 valign = top> Software uses a message list </ td> <TD align = center colspan = 2 style = 'background-color: ffffff' valign = 'bottom'> Related message A total of <font style = 'font-size: 16px; color: red'> <% = Guestrs.Recordcount%> </ font> bar < / TD> <TD Style = 'Background-Color: ffffff'</p> <p>Valign = bottom align = center> <a href='index.asp?pageno=<% =pageno%> Message list </a> </ td> <TD Style = 'Background-Color: ffffff' valign = bottom Align = center> <a href='revert.asp?type=post'> Poster </a> </ td> </ tr> <tr style = "color: red"> <td align = center class = 'TD1' Width = 70%> Message Title </ TD> <TD Align = Center Width = 70 Class = 'TD1' NOWRAP> <IMG SRC = 'Edit.gif'> Servers </ TD> <TD Align = CENTER Width = 100 Class = 'TD1' NOWRAP> Published Time </ TD> <TD Align = Center Width = 60 Class = 'TD1' NOWRAP> Post Word Count </ TD> <TD Align = Center Width = 60 Class = 'TD1 'NOWRAP> Post Number </ TD> </ TR> <% Do While Not Guestrs.eof%> <TR> <TD> <% IF Guestrs ("rootid") <> 0 Then Response.write (Space (LEN ("OrderStr")), "", "))%> <% if Guestrs (" Lybid ") 1 = Keyid 1 Then IF Guestrs (" rootid ") = 0 THEN rootid = Guestrs ( "lybid") else rootid = guestrs ( "rootid") end if lybid = guestrs ( "lybid") guestitle = guestrs ( "guestitle") guestname = guestrs ( "guestname") guestemail = guestcomm guestrs ( "guestemail") = GUESTRS ("GuestComm") Putdate = GUESTRS "Putdate") Puttime = Guestrs ("Puttime") emailflag = Guestrs ("emailflag")%> <% = Guestrs ("guestitle")%> <% else%> <a href = 'DispRec.asp? keyid = < % = GUESTRS ("</p> <p>Lybid ")%> & rootid = <% = Guestrs (" rootid ")%> & Pageno = <% = Pageno%>> <% = GUSTRS (" guestitle ")%> </a> <% end if%> < / TD> <td align = right nowrap> <% = Guestrs ("guestname")%> </ td> <td nowrap align = center nowrap> <% = Guestrs ("Putdate" & "& Guestrs" )%> </ td> <td align = Right Nowrap> <% = LEN (GuestRS ("GuestComm"))%> </ td> <TD align = Right Nowrap> <% = Guestrs ("lybid")%> </ td> </ tr> <% guestrs.movenextloopgueStrs.Closset Guestrs = NothingGuestConn.closset GuestConn = Nothing%> <TR> <TD Height = 20 COLSPAN = 5 style = "Background-color: ffffff"> </ td> </ tr> <tr> <TD style = "color: red" align = center> <% = guestitle%> </ td> <TD align = Right Width = 70> <% = guestname%> </ td> < Td width = 100> <% = Putdate & "& Puttime%> </ td> <TD align = Right Width = 60> <% = len (guestcomm)%> </ td> <TD align = Right Width = 60> < % = lybid%> </ td> </ tr> <tr> <td colspan = 5 style = "Background-color: f3f7ff" height = 50 valign = top> <% = guestcomm%> <p align = Right> < a href = 'delrec.asp? type = repert & keyid = <% = keyid%> & Pageno = <% = Pageno%>> Delete message <A href =' REVER T.asp? type = repert & keyid = <% = lybid%> & pageno = <% = Pageno%>> Reply to the author </a></p></div><div class="text-center mt-3 text-grey"> 转载请注明原文地址:https://www.9cbs.com/read-52902.html</div><div class="plugin d-flex justify-content-center mt-3"></div><hr><div class="row"><div class="col-lg-12 text-muted mt-2"><i class="icon-tags mr-2"></i><span class="badge border border-secondary mr-2"><h2 class="h6 mb-0 small"><a class="text-secondary" href="tag-2.html">9cbs</a></h2></span></div></div></div></div><div class="card card-postlist border-white shadow"><div class="card-body"><div class="card-title"><div class="d-flex justify-content-between"><div><b>New Post</b>(<span class="posts">0</span>) </div><div></div></div></div><ul class="postlist list-unstyled"> </ul></div></div><div class="d-none threadlist"><input type="checkbox" name="modtid" value="52902" checked /></div></div></div></div></div><footer class="text-muted small bg-dark py-4 mt-3" id="footer"><div class="container"><div class="row"><div class="col">CopyRight © 2020 All Rights Reserved </div><div class="col text-right">Processed: <b>0.034</b>, SQL: <b>9</b></div></div></div></footer><script src="./lang/en-us/lang.js?2.2.0"></script><script src="view/js/jquery.min.js?2.2.0"></script><script src="view/js/popper.min.js?2.2.0"></script><script src="view/js/bootstrap.min.js?2.2.0"></script><script src="view/js/xiuno.js?2.2.0"></script><script src="view/js/bootstrap-plugin.js?2.2.0"></script><script src="view/js/async.min.js?2.2.0"></script><script src="view/js/form.js?2.2.0"></script><script> var debug = DEBUG = 0; var url_rewrite_on = 1; var url_path = './'; var forumarr = {"1":"Tech"}; var fid = 1; var uid = 0; var gid = 0; xn.options.water_image_url = 'view/img/water-small.png'; </script><script src="view/js/wellcms.js?2.2.0"></script><a class="scroll-to-top rounded" href="javascript:void(0);"><i class="icon-angle-up"></i></a><a class="scroll-to-bottom rounded" href="javascript:void(0);" style="display: inline;"><i class="icon-angle-down"></i></a></body></html><script> var forum_url = 'list-1.html'; var safe_token = '5Ebsh471BxjhevS9Lxdq3UXJY38Op9mPNV5vNE6RXi24_2FBqTUBEF_2FEpDVRFBPF5lnHmGshLJHCwoQ_2FInyx7SrQ_3D_3D'; var body = $('body'); body.on('submit', '#form', function() { var jthis = $(this); var jsubmit = jthis.find('#submit'); jthis.reset(); jsubmit.button('loading'); var postdata = jthis.serializeObject(); $.xpost(jthis.attr('action'), postdata, function(code, message) { if(code == 0) { location.reload(); } else { $.alert(message); jsubmit.button('reset'); } }); return false; }); function resize_image() { var jmessagelist = $('div.message'); var first_width = jmessagelist.width(); jmessagelist.each(function() { var jdiv = $(this); var maxwidth = jdiv.attr('isfirst') ? first_width : jdiv.width(); var jmessage_width = Math.min(jdiv.width(), maxwidth); jdiv.find('img, embed, iframe, video').each(function() { var jimg = $(this); var img_width = this.org_width; var img_height = this.org_height; if(!img_width) { var img_width = jimg.attr('width'); var img_height = jimg.attr('height'); this.org_width = img_width; this.org_height = img_height; } if(img_width > jmessage_width) { if(this.tagName == 'IMG') { jimg.width(jmessage_width); jimg.css('height', 'auto'); jimg.css('cursor', 'pointer'); jimg.on('click', function() { }); } else { jimg.width(jmessage_width); var height = (img_height / img_width) * jimg.width(); jimg.height(height); } } }); }); } function resize_table() { $('div.message').each(function() { var jdiv = $(this); jdiv.find('table').addClass('table').wrap('<div class="table-responsive"></div>'); }); } $(function() { resize_image(); resize_table(); $(window).on('resize', resize_image); }); var jmessage = $('#message'); jmessage.on('focus', function() {if(jmessage.t) { clearTimeout(jmessage.t); jmessage.t = null; } jmessage.css('height', '6rem'); }); jmessage.on('blur', function() {jmessage.t = setTimeout(function() { jmessage.css('height', '2.5rem');}, 1000); }); $('#nav li[data-active="fid-1"]').addClass('active'); </script>