שלח תשובה

זירת השאלות

520
צפיות
21
תשובות

div ו- span … כמו בפורום

,‏ 11 בספטמבר, 2004

הסקריפט שפורסם בפורום תכנות ASP בתפוז
דורש להחליף מספר לID בכל פעם שאני מוסיף הודעה נפתחת…

הנה הסקריפט


<SCRIPT LANGUAGE="JavaScript">
<!–
    function showDiv(d_id)
    {
        d_id.style.display = d_id.style.display == "none" ? "" : "none"
    }
//–>
</SCRIPT>


והנה מה שאני צריך לעשות (לדוגמא : ID שווה ל4) .


<span style="cursor:hand; " onClick="javascript:showDiv(d_4)">
הודעה ראשונה
</span>
<Div style="display:none" id="d_4">
תוכן הודעה ראשונה
</div>


אני בונה פורום עץ כמו פורום זה , ובכל פעם שהmovenext נכנס לפעולה הid של הסקריפט נשאר אותו דבר ואז ישנה שגיאה שלא פותחת לי הודעות (מאחר וכל הID זהים) .

השאלה שלי :
כיצד אני מחליף באופן אוטומטי את הid של הסקריפט לid לדוגמא של ההודעה בפורום ?

תגיות:

21 תשובות

  1. prince01 הגיב:

    לא משנה הסתדרתי
    החלפתי את הid במספר הid של ההודעה שלי ..

  2. prince01 הגיב:

    שאלה
    אני מעוניין לצור טופס הרשמה והתחברות לפורום שלי כך שבעת שליחת נתוני "הוספת הודעת חדשה" גם שם המשתמש יכלל .
    אני מבין שלצורך זה יש לדעת Sessions טוב ..
    למישהו יש מדריך טוב להציע לי ?

  3. Ami הגיב:

    מדריך יש באתר הזה
    במדריך asp אבל אפשר להישתמש גם בעוגיה…

  4. prince01 הגיב:

    קראתי .. אבל בכל זאת
    אשמח אם מישהו יסביר לי קצת כיצד לצור טופס התחברות
    כאשר משתמש מסויים התחבר למערכת – אוכל לאחסן את שם המשתמש
    שלו במשתנה כלשהו ולהשתמש בו …

    תודה

  5. Ami הגיב:

    במדריך ה asp בפעם השניה בדף האחרון

  6. תוכל לעשות זאת כך:
    אם אתה רוצה להעביר את השם משתמש למשתנה אחר, אתה יכול לעשות זאת כך:
    dim username
    username=rs("username")

    במידה ואתה רוצה ליצור session שמכיל עם השם משתמש, תכתוב כך:
    Session("username") = rs("username")
    על מנת להציג את הערך שיש ב session תעשה כך:
    response.write Session("username")

  7. prince01 הגיב:

    יחסי גומלין
    כיצד אפשרי לצור יחסי גומלין בין הודעה מסויימת לתגובותיה ?
    אני מנסה לבנות פורום עץ ואני מתקשה לקשר בין כל תגובה לתגובה, לצור שרשורים וסידור נוח של הצגת ההודעות .

    אשמח לעזרה :]

  8. אני מבין שיש לך שתי טבלאות,
    כי אתה רוצה לעשות קשרי גוומלין.

    תעשה ככה:
    תיכנס לחלק של הקשרי גומלין ותלחץ על הparent_id של טבלת התגובות, ותקשר בינו לבין הid של טבלת ההודעות.

    זה אמור לעזור

  9. ניר טייב הגיב:

    כן אבל כאן
    צריך להשתמש בתכונה join type ואז לבחור ב-RIGHT או LEFT
    על כל פנים אני בעד סידור אחר של נתונים
    או רקורסיה כמו שהדגמתי במאמרים שלי
    או סידור ההודעות ע"י ORDER BY
    שאני מניח שזה מה שנעשה כאן: http://www.sayit.co.il

  10. prince01 הגיב:

    השתמשתי במאמר שלך
    של הרקורסיה .
    הוא מסדר לי מצויין את התגובות, בדיוק כמו שרציתי.
    אבל אני משתמש, כמו בפורום כאן, בspan ובdiv אשר פותחים באותו עמוד את ההודעה ולפי הקוד שהצגתי – לא מצאתי איפה אני יכול לדחוף את הקוד של הspan והקוד של הdiv ….

  11. ניר טייב הגיב:

    לפי עיני גם המאמר שלי עובד עם
    ספנים ו-DIVHם

    תציץ שוב

  12. prince01 הגיב:

    נכנסתי שוב למאמרך
    נכנסתי למאמר שלך והוא אינו כולל את המערך של פתיחת הודעות באותו דף בשיטה כמו בפורום זה …
    במאמר מצויין כיצד להציג את הנושאים (subjects) ולא את התוכן של ההודעה (messageBody) … ניסיתי מספר צורות שונות אך אני לא מצליח לפתוח ולהציג את תוכן ההודעה בעת הלחיצה על פתיחת הודעה ..

    בקיצור, אתה בטוח שיש במאמר את הופעת ההודעות והתכנים שלהם כמו בפורום זה ?

    תודה

  13. ניר טייב הגיב:

    במאמר התוספות
    במדור ASP מאמרים למתקדמים
    מוסברים על כמה תוספות בקשר תצוגה ודברים נוספים שאנשים אוהבים בפורום עץ

  14. prince01 הגיב:

    הכל עובד טוב ויפה .. אבל
    (עבדתי לפי מאמר התוספות שלך, אחלה מאמר) .
    ישנה שגיאה :
    אני מוסיף תגובה מסויימת להודעה כלשהי ובסיום השליחה הוא מודיע לי את השגיאה הבאה :


    error '80020009'
    Exception occurred.

    /sup/frm/insMessage.asp, line 48

    זה מכוון ל :

        rsDt = CDate(rs.Fields("groupID"))

    בדקתי את מסד הנתונים ובעצם משום מה התאריך (קראתי לו GroupID – במקום GroupDate אבל חפיף) לא נכנס למסד …
    למה התאריך לא נכנס ?

  15. ניר טייב הגיב:


    תראה את הסאב-רטוינה insertNewRess ונראה מה לא טוב
    ד"א החיבור שלך הוא OLEDB או ODBC אם ODBC אז רצוי לעבור ל-OLEDB)

    נ.ב
    את החלק הזה כתבתי ב-JS במקור והוא שונה ל-VBS בגלל ששאר המאמר גם כך

  16. prince01 הגיב:

    בבקשה


    Sub insertNewRess(pId, MsgSubject, mess, rId)' פונקציה להכנסת תגובה חדשה
        Dim SQLupdate, SQLinsert, rs, dt, rsDt
        SQLinsert = "INSERT INTO Messages (parentid, MsgSubject, messageBody, rootId)"
        SQLinsert = SQLinsert & " Values(" & pId & ",'" & MsgSubject & "','" & mess & "'," & rId & ")"
        oConn.Execute SQLinsert
        Set rs = Server.CreateObject("ADODB.Recordset")
        rs.Open "SELECT Messages.groupID FROM Messages WHERE Messages.messageID=" & rId, oConn
        dt = Now()
        rsDt = CDate(rs.Fields("groupID"))
        if (rsDt<=dt) Then ' בדיקה האם ההודעה הראשית(הודעת השרשור) נעוצה או לא
            SQLupdate = "UPDATE Messages SET Messages.groupID=now() WHERE Messages.messageID=" & rId
            oConn.Execute SQLupdate
        End If
        rs.Close
        Set rs = nothing
    End Sub

  17. prince01 הגיב:

    אגב
    כפתור הוספת הודעה חדשה אצלי נראה כך :

    addMess.asp?messageID=0

    וכאשר אני מוסיף הודעה הוא מחזיר לי :

    Microsoft JET Database Engine error '80040e14'

    Syntax error in INSERT INTO statement.

    /sup/frm/insMessage.asp, line 44

    (אני לא מאמין שיש צורך להראות את השורה, השגיאה לדעתי היא בquerystring שרשמתי בקישור)..

  18. ניר טייב הגיב:

    לבעייתך
    נסה לבדוק אם rs.EOF מתקיים (לאחר גיגול קטן מצאתי שהבעיה הזו כנראה קוראת בגלל שאתה ב-EOF)

  19. ניר טייב הגיב:

    השגיאה היא ב-Insert into
    תדפיס את השאילתא (Response.Write sql)

  20. Alon12 הגיב:

    תבדוק באמת שכל השדות מתאימים
    לדוגמא pid באמת מספר…

שלח תשובה