בניית פורום רקורסיבי – חלק א'
פורום רקורסיבי הוא אחד מהפורומים הקלים לבניה. במאמר זה נסביר כיצד מתבצעת תצוגת הפורום הרקורסיבי. המאמר מדגים תצוגת פורום בסיסי ביותר. את שאר הפיצ'רים, כגון חלוקה לעמודים, טפסי הוספת ההודעה וכו', אנו בטוחים שתוכל לבנות בעצמך (:
קודם כל נבנה את הטבלה במסד :
ID | מספור אוטומטי | מפתח ראשי |
parentId | מספר | ID של הודעת האב, הודעה ראשית תהיה 0 |
Subject | טקסט | נושא ההודעה |
נתחיל בשליפת כל הרשומות: 1
2
3
4 <%
sql="SELECT id, parentId, title FROM Messages ORDER BY Id "
rs.Open sql,Conn
%>
לאחר מכן נכניס הכול לתוך מערך getrows 1
2
3
4 <%
dim recArray
recArray = rs.getRows()
%>
עכשיו נבצע לולאה ובתוכה נבדוק האם ה-parentID שווה לאפס (כלומר – זו הודעה ראשית) אז נקרא לפונקציה רקורסיבית אליה נשלח את האינדקס (אינדקס = מס' שורה) ואם ה-parentId לא שווה ל-0 (זו תגובה) אז לא קורה כלום והלולאה ממשיכה הלאה (כי התגובות מוצגות בתוך הפונק' הרקורסיבית). 1
2
3
4
5
6
7
8
9 <%
dim i
for i=0 to uBound(recArray,2)
if recArray(1,i)=0 then ' זו הודעה ראשית
call showMessage(i)
Response.Write("<hr>")
end if
next
%>
לאחר מכן נבנה את הפונקציה הרקורסיבית שמדפיסה את ההודעה.
הזחת ההודעות נעשית ע"י padding: 1
2
3
4
5
6
7
8
9
10
11
12
13
14 <%
function showMessage(index)
dim subject
subject = recArray(2,index)
Response.Write("<div style=""padding-right: 20px"">")
Response.Write(subject)
for a=0 to uBound(recArray,2)
if recArray(1,a) = recArray(0,index) Then
call showMessage(a) 'הצגת התגובות
end if
next
Response.Write("</div>")
end function
%>
וזהו עכשיו יש לנו פורום רקורסיבי בסיסי…
הקוד במלואו
|
|
תגובות בפייסבוק