צפיות
תשובות
בעיית רקורסיה…
עשיתי רקורסיה בצד השרת והכל עובד פיקס עכשיו התחלתי להעביר לצד הלקוח
את המערך הועבר אבל שאני עושה את הרקורסיה היא לא עובדת כמו שצריך כך הרקורסיה נראית בצד השרת אצלי
for a=0 to uBound(recArray,2)
if recArray(1,a) = id then
call showAllMessage(recArray(0,a),recArray(2,a),recArray(3,a),recArray(4,a),level+2)
end if
next
כש-ID מתקבל כפרמטר
וכך עשיתי בלקוח
for (a=0;a<=JSrecArray[1].length;a++){
if ( JSrecArray[1][a]==JSrecArray[0][this.id] ){
showAllMessage(a,parseInt(parseInt(this.level)+1))
}
}
כש-this.id זה ה-ID של ההודעה הראשית(האב) ו-JSrecArray[1] זה תת מערך שמכיל את כל ה-parentIDים של כל ההודעות / תגובות
בעצם זה מגיע עד תגובה ראשונה ולבנים שלה ולנכדים הראשונים ולנינים הראשונים והלאה זה אף פעם לא מגיע לתגובה השנייה ולנכדים ולניינים שלה
מישהו יודע איך לפתור את זה ???
וזה בעצם הפונקציה המלאה
function showAllMessage(id,level){ // id of the message, level of spacing,message, date of the message & subject
var subject,message,Ndate,a
subject = JSrecArray[2][id]
message = JSrecArray[3][id]
Ndate = JSrecArray[4][id]
this.id = id
this.level = parseInt(level)
document.write("<div style='padding-right:" + level*5 + ";'>") // create div & the padding-right of the div
document.write("<span class='subject' onClick=displayOrNot('message("+this.id+":"+this.level+")')>" + subject + "</
span><br>") // writing the subject
// write the hide message
document.write("<span class='message' style='display: none;' id='message("+id+":"+level+")'>" + message + "
<br><br> ")
document.write("<span onClick=MM_openBrWindow('addMessage.asp?id="+id+"','הוסף תגובה',") class='option'
style='font-size:16px'> הוסף תגובה </span>")
document.write(" / <span onClick=" class='option'>הדפס הודעה</span>")
document.write(" / <span onClick=" class='option'>פתח בחלון חדש</span>")
document.write("<br></span>")
// looping to sub Messages of this message
for (a=0;a<=JSrecArray[1].length;a++){
if ( JSrecArray[1][a]==JSrecArray[0][this.id] ){
showAllMessage(a,parseInt(parseInt(this.level)+1))
}
}
document.write("</div>")
}
וכך אני מתחיל עם הרקורסיה
for (i=0;i<JSrecArray[1].length;i++){
if (JSrecArray[1][i]=="0"){
document.write("<div style='backGround-Color: B0BDD7;border:1px solid #8DA5D5;padding:5px;'>") ;
showAllMessage(i,0)
document.write("</div><br>");
}
}
תודה לכל העוזרים ניר
4 תשובות
טוב הסתדרתי
בלולאה הייתי צריך לעשות כך :::
for (a=0;a<=JSrecArray[1].length;a++){
if (JSrecArray[1][a]==JSrecArray[0][id]){
showAllMessage(a,level+1)
}
}
תודה בכל מקרה
עכשיו לחלק שלדעתי דיי מסובך…
טוב יש לי פורום רקורסיבי (לפחות העמוד הראשי) עכשיו אני רוצה להכניס בו חלוקה לדפים אבל כיוון שכל תגובה מקבלת ID באותה טבלה של ההודעות אז אני לא יכול לעשות ב-getRows מס' שורות כי אם אני אעשה את זה אז אני אקבל הודעות שרק חלק מהשרשור שלהן נמצא ואת החלק האחר של השרושר לא יהיה קיים בתוך הפורום אלא רק במסד אז מה אני יכול לעשות כדי שבפורום יהיה חלוקה לדפים
כל נראית הטבלה שלי ב-DB
| ID | מס' אוטומטי
| parentID | מס'
|subject| תזכיר MEMO
|message| תזכיר MEMO
|date| תאריך / שעה DATE/TIME
תודה רבה מראש ניר
טוב התקדמתי קצת מישהו יכול לעזור לי
עכשיו יש לי את השאילתא הבאה (אני בניתי בעזרת ערקי מנומש מתפוז) :
SELECT forum.id, forum.parentID, forum.subject, forum.message, forum.date
FROM forum
WHERE forum.rootID in (SELECT TOP 15 fixedForum.rootID FROM fixedForum ORDER BY fixedForum.rootID DESC)
GROUP BY forum.id, forum.parentID, forum.subject, forum.message, forum.date, forum.rootID
ORDER BY forum.rootID DESC , forum.parentID;
עכשיו דרך השאילתא הזו איך אני מבצע את החלוקה לדפים ב-ASP
והמשך…
עכשיו על השאילתא שנתתי יש בה את התת שאילתא שלוקחת מה-view
fixedForum את ה-15 rootIDים הראשונים וכך נראית השאילתא של ה-view
fixedForum :::
SELECT forum.rootID, MAX(forum.rootID) AS MAXrootID
FROM forum
GROUP BY forum.rootID
ORDER BY forum.rootID DESC;
מטרתי היא לעשות חלוקה לדפים בפורום רקורסיבי מישהו יכול להדריך אותי (לא מבחינת קוד)
איך לעשות את זה?